Browse Source

Adjustments for MySQL 8

The prototype had been tested against MariaDB
microsub
J. King 5 years ago
parent
commit
393b4e95ad
  1. 6
      lib/Db/MySQL/Driver.php
  2. 2
      lib/Db/PDOError.php
  3. 2
      sql/MySQL/1.sql
  4. 28
      sql/MySQL/2.sql

6
lib/Db/MySQL/Driver.php

@ -13,7 +13,7 @@ use JKingWeb\Arsse\Db\ExceptionInput;
use JKingWeb\Arsse\Db\ExceptionTimeout; use JKingWeb\Arsse\Db\ExceptionTimeout;
class Driver extends \JKingWeb\Arsse\Db\AbstractDriver { class Driver extends \JKingWeb\Arsse\Db\AbstractDriver {
const SQL_MODE = "ANSI_QUOTES,HIGH_NOT_PRECEDENCE,NO_BACKSLASH_ESCAPES,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY,PIPES_AS_CONCAT,STRICT_ALL_TABLES"; const SQL_MODE = "ANSI_QUOTES,HIGH_NOT_PRECEDENCE,NO_BACKSLASH_ESCAPES,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,STRICT_ALL_TABLES";
const TRANSACTIONAL_LOCKS = false; const TRANSACTIONAL_LOCKS = false;
protected $db; protected $db;
@ -72,7 +72,7 @@ class Driver extends \JKingWeb\Arsse\Db\AbstractDriver {
public function sqlToken(string $token): string { public function sqlToken(string $token): string {
switch (strtolower($token)) { switch (strtolower($token)) {
case "nocase": case "nocase":
return '"utf8mb4_unicode_nopad_ci"'; return '"utf8mb4_unicode_ci"';
default: default:
return $token; return $token;
} }
@ -120,7 +120,7 @@ class Driver extends \JKingWeb\Arsse\Db\AbstractDriver {
try { try {
$this->exec("SET lock_wait_timeout = 1; LOCK TABLES $tables"); $this->exec("SET lock_wait_timeout = 1; LOCK TABLES $tables");
} finally { } finally {
$this->exec("SET lock_wait_timeout = 0"); $this->exec("SET lock_wait_timeout = 60");
} }
} }
return true; return true;

2
lib/Db/PDOError.php

@ -44,6 +44,8 @@ trait PDOError {
return [ExceptionTimeout::class, 'general', $err[2]]; return [ExceptionTimeout::class, 'general', $err[2]];
case 1364: case 1364:
return [ExceptionInput::class, "constraintViolation", $err[2]]; return [ExceptionInput::class, "constraintViolation", $err[2]];
case 1366:
return [ExceptionInput::class, 'engineTypeViolation', $err[2]];
} }
break; break;
} }

2
sql/MySQL/1.sql

@ -28,6 +28,6 @@ create table arsse_label_members (
primary key(label,article) primary key(label,article)
) character set utf8mb4; ) character set utf8mb4;
alter table arsse_marks add column note longtext not null default ''; alter table arsse_marks add column note longtext;
update arsse_meta set value = '2' where `key` = 'schema_version'; update arsse_meta set value = '2' where `key` = 'schema_version';

28
sql/MySQL/2.sql

@ -4,20 +4,20 @@
-- Please consult the SQLite 3 schemata for commented version -- Please consult the SQLite 3 schemata for commented version
alter table arsse_users default character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_users default character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_folders default character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_folders default character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_feeds default character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_feeds default character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_subscriptions default character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_subscriptions default character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_articles default character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_articles default character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_categories default character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_categories default character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_labels default character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_labels default character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_users convert to character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_users convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_folders convert to character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_folders convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_feeds convert to character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_feeds convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_subscriptions convert to character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_subscriptions convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_articles convert to character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_articles convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_categories convert to character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_categories convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table arsse_labels convert to character set utf8mb4 collate utf8mb4_unicode_nopad_ci; alter table arsse_labels convert to character set utf8mb4 collate utf8mb4_unicode_ci;
update arsse_meta set value = '3' where `key` = 'schema_version'; update arsse_meta set value = '3' where `key` = 'schema_version';

Loading…
Cancel
Save