* @covers \JKingWeb\Arsse\Db\PDOError */ class TestStatement extends \JKingWeb\Arsse\TestCase\Db\BaseStatement { protected $implementation = "PDO PostgreSQL"; public function tearDown() { parent::tearDown(); unset($this->interface); } protected function exec(string $q) { $this->interface->exec($q); } protected function makeStatement(string $q, array $types = []): array { return [$this->interface, $this->interface->prepare($q), $types]; } protected function decorateTypeSyntax(string $value, string $type): string { switch ($type) { case "float": return (substr($value, -2)==".0") ? "'".substr($value, 0, strlen($value) - 2)."'" : "'$value'"; case "string": if (preg_match("<^char\((\d+)\)$>", $value, $match)) { return "U&'\\+".str_pad(dechex((int) $match[1]), 6, "0", \STR_PAD_LEFT)."'"; } else { return $value; } default: return $value; } } }