<?php
/** @license MIT
 * Copyright 2017 J. King, Dustin Wilson et al.
 * See LICENSE and AUTHORS files for details */

declare(strict_types=1);

namespace JKingWeb\Arsse\Db\PostgreSQL;

use JKingWeb\Arsse\Db\Result;

class PDOStatement extends \JKingWeb\Arsse\Db\PDOStatement {
    public static function mungeQuery(string $query, array $types, ...$extraData): string {
        return Statement::mungeQuery($query, $types, false);
    }

    /** @codeCoverageIgnore */
    public static function buildEngineException($code, string $msg): array {
        // PostgreSQL uses SQLSTATE exclusively, so this is not used
        return [];
    }

    public function runArray(array $values = []): Result {
        $this->st->closeCursor();
        $this->bindValues($values);
        try {
            $this->st->execute();
        } catch (\PDOException $e) {
            [$excClass, $excMsg, $excData] = $this->buildPDOException(true);
            throw new $excClass($excMsg, $excData);
        }
        return new PDOResult($this->db, $this->st);
    }
}