Browse Source

Driver changes to support basic text searching

microsub
J. King 5 years ago
parent
commit
ad8057a40b
  1. 4
      lib/Db/Driver.php
  2. 4
      lib/Db/MySQL/Driver.php
  3. 6
      lib/Db/PostgreSQL/Driver.php
  4. 4
      lib/Db/SQLite3/Driver.php

4
lib/Db/Driver.php

@ -73,6 +73,10 @@ interface Driver {
* *
* - "greatest": the GREATEST function implemented by PostgreSQL and MySQL * - "greatest": the GREATEST function implemented by PostgreSQL and MySQL
* - "nocase": the name of a general-purpose case-insensitive collation sequence * - "nocase": the name of a general-purpose case-insensitive collation sequence
* - "like": the case-insensitive LIKE operator
*/ */
public function sqlToken(string $token): string; public function sqlToken(string $token): string;
/** Indicates whether the implementation is capable of full-text searching */
public function fulltextEnabled(): bool;
} }

4
lib/Db/MySQL/Driver.php

@ -212,4 +212,8 @@ class Driver extends \JKingWeb\Arsse\Db\AbstractDriver {
public function prepareArray(string $query, array $paramTypes): \JKingWeb\Arsse\Db\Statement { public function prepareArray(string $query, array $paramTypes): \JKingWeb\Arsse\Db\Statement {
return new Statement($this->db, $query, $paramTypes, $this->packetSize); return new Statement($this->db, $query, $paramTypes, $this->packetSize);
} }
public function fulltextEnabled(): bool {
return false;
}
} }

6
lib/Db/PostgreSQL/Driver.php

@ -120,6 +120,8 @@ class Driver extends \JKingWeb\Arsse\Db\AbstractDriver {
switch (strtolower($token)) { switch (strtolower($token)) {
case "nocase": case "nocase":
return '"und-x-icu"'; return '"und-x-icu"';
case "like":
return "ilike";
default: default:
return $token; return $token;
} }
@ -219,4 +221,8 @@ class Driver extends \JKingWeb\Arsse\Db\AbstractDriver {
public function prepareArray(string $query, array $paramTypes): \JKingWeb\Arsse\Db\Statement { public function prepareArray(string $query, array $paramTypes): \JKingWeb\Arsse\Db\Statement {
return new Statement($this->db, $query, $paramTypes); return new Statement($this->db, $query, $paramTypes);
} }
public function fulltextEnabled(): bool {
return false;
}
} }

4
lib/Db/SQLite3/Driver.php

@ -179,4 +179,8 @@ class Driver extends \JKingWeb\Arsse\Db\AbstractDriver {
$this->exec((!$rollback) ? "COMMIT" : "ROLLBACK"); $this->exec((!$rollback) ? "COMMIT" : "ROLLBACK");
return true; return true;
} }
public function fulltextEnabled(): bool {
return false;
}
} }

Loading…
Cancel
Save