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
* - "nocase": the name of a general-purpose case-insensitive collation sequence
* - "like": the case-insensitive LIKE operator
*/
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 {
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)) {
case "nocase":
return '"und-x-icu"';
case "like":
return "ilike";
default:
return $token;
}
@ -219,4 +221,8 @@ class Driver extends \JKingWeb\Arsse\Db\AbstractDriver {
public function prepareArray(string $query, array $paramTypes): \JKingWeb\Arsse\Db\Statement {
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");
return true;
}
public function fulltextEnabled(): bool {
return false;
}
}

Loading…
Cancel
Save