Skip to content

Commit a713a67

Browse files
committed
test
1 parent 59e37ab commit a713a67

3 files changed

Lines changed: 58 additions & 45 deletions

File tree

tests/WP_SQLite_Driver_Translation_Tests.php

Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
use PHPUnit\Framework\TestCase;
44

5+
$bypass_strict = defined( 'WP_SQLITE_UNSAFE_ENABLE_UNSUPPORTED_VERSIONS' ) && WP_SQLITE_UNSAFE_ENABLE_UNSUPPORTED_VERSIONS;
6+
define( 'STRICT', $bypass_strict ? '' : ' STRICT' );
7+
58
class WP_SQLite_Driver_Translation_Tests extends TestCase {
69
const GRAMMAR_PATH = __DIR__ . '/../wp-includes/mysql/mysql-grammar.php';
710

@@ -307,7 +310,7 @@ public function testDelete(): void {
307310

308311
public function testCreateTable(): void {
309312
$this->assertQuery(
310-
'CREATE TABLE `t` ( `id` INTEGER ) STRICT',
313+
'CREATE TABLE `t` ( `id` INTEGER )' . STRICT,
311314
'CREATE TABLE t (id INT)'
312315
);
313316

@@ -328,7 +331,7 @@ public function testCreateTable(): void {
328331

329332
public function testCreateTableWithMultipleColumns(): void {
330333
$this->assertQuery(
331-
'CREATE TABLE `t` ( `id` INTEGER, `name` TEXT COLLATE NOCASE, `score` REAL DEFAULT \'0.0\' ) STRICT',
334+
'CREATE TABLE `t` ( `id` INTEGER, `name` TEXT COLLATE NOCASE, `score` REAL DEFAULT \'0.0\' )' . STRICT,
332335
'CREATE TABLE t (id INT, name TEXT, score FLOAT DEFAULT 0.0)'
333336
);
334337

@@ -353,7 +356,7 @@ public function testCreateTableWithMultipleColumns(): void {
353356

354357
public function testCreateTableWithBasicConstraints(): void {
355358
$this->assertQuery(
356-
'CREATE TABLE `t` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT ) STRICT',
359+
'CREATE TABLE `t` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT )' . STRICT,
357360
'CREATE TABLE t (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT)'
358361
);
359362

@@ -381,7 +384,7 @@ public function testCreateTableWithBasicConstraints(): void {
381384
public function testCreateTableWithEngine(): void {
382385
// ENGINE is not supported in SQLite, we save it in information schema.
383386
$this->assertQuery(
384-
'CREATE TABLE `t` ( `id` INTEGER ) STRICT',
387+
'CREATE TABLE `t` ( `id` INTEGER )' . STRICT,
385388
'CREATE TABLE t (id INT) ENGINE=MyISAM'
386389
);
387390

@@ -403,7 +406,7 @@ public function testCreateTableWithEngine(): void {
403406
public function testCreateTableWithCollate(): void {
404407
// COLLATE is not supported in SQLite, we save it in information schema.
405408
$this->assertQuery(
406-
'CREATE TABLE `t` ( `id` INTEGER ) STRICT',
409+
'CREATE TABLE `t` ( `id` INTEGER )' . STRICT,
407410
'CREATE TABLE t (id INT) COLLATE utf8mb4_czech_ci'
408411
);
409412

@@ -433,7 +436,7 @@ public function testCreateTableWithPrimaryKey(): void {
433436
* https://www.sqlite.org/lang_createtable.html#rowids_and_the_integer_primary_key
434437
*/
435438
$this->assertQuery(
436-
'CREATE TABLE `t` ( `id` INT NOT NULL, PRIMARY KEY (`id`) ) STRICT',
439+
'CREATE TABLE `t` ( `id` INT NOT NULL, PRIMARY KEY (`id`) )' . STRICT,
437440
'CREATE TABLE t (id INT PRIMARY KEY)'
438441
);
439442

@@ -461,7 +464,7 @@ public function testCreateTableWithPrimaryKey(): void {
461464
public function testCreateTableWithPrimaryKeyAndAutoincrement(): void {
462465
// With AUTOINCREMENT, we expect "INTEGER".
463466
$this->assertQuery(
464-
'CREATE TABLE `t1` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT ) STRICT',
467+
'CREATE TABLE `t1` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT )' . STRICT,
465468
'CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT)'
466469
);
467470

@@ -487,7 +490,7 @@ public function testCreateTableWithPrimaryKeyAndAutoincrement(): void {
487490

488491
// In SQLite, PRIMARY KEY must come before AUTOINCREMENT.
489492
$this->assertQuery(
490-
'CREATE TABLE `t2` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT ) STRICT',
493+
'CREATE TABLE `t2` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT )' . STRICT,
491494
'CREATE TABLE t2 (id INT AUTO_INCREMENT PRIMARY KEY)'
492495
);
493496

@@ -513,7 +516,7 @@ public function testCreateTableWithPrimaryKeyAndAutoincrement(): void {
513516

514517
// In SQLite, AUTOINCREMENT cannot be specified separately from PRIMARY KEY.
515518
$this->assertQuery(
516-
'CREATE TABLE `t3` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT ) STRICT',
519+
'CREATE TABLE `t3` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT )' . STRICT,
517520
'CREATE TABLE t3 (id INT AUTO_INCREMENT, PRIMARY KEY(id))'
518521
);
519522

@@ -543,7 +546,7 @@ public function testCreateTableWithPrimaryKeyAndAutoincrement(): void {
543546
public function testCreateTableWithInlineUniqueIndexes(): void {
544547
$this->assertQuery(
545548
array(
546-
'CREATE TABLE `t` ( `id` INTEGER, `name` TEXT COLLATE NOCASE ) STRICT',
549+
'CREATE TABLE `t` ( `id` INTEGER, `name` TEXT COLLATE NOCASE )' . STRICT,
547550
'CREATE UNIQUE INDEX `t__id` ON `t` (`id`)',
548551
'CREATE UNIQUE INDEX `t__name` ON `t` (`name`)',
549552
),
@@ -582,7 +585,7 @@ public function testCreateTableWithInlineUniqueIndexes(): void {
582585
public function testCreateTableWithStandaloneUniqueIndexes(): void {
583586
$this->assertQuery(
584587
array(
585-
'CREATE TABLE `t` ( `id` INTEGER, `name` TEXT COLLATE NOCASE ) STRICT',
588+
'CREATE TABLE `t` ( `id` INTEGER, `name` TEXT COLLATE NOCASE )' . STRICT,
586589
'CREATE UNIQUE INDEX `t__id` ON `t` (`id`)',
587590
'CREATE UNIQUE INDEX `t__name` ON `t` (`name`)',
588591
),
@@ -642,7 +645,7 @@ public function testCreateTableWithStandaloneUniqueIndexes(): void {
642645

643646
public function testCreateTemporaryTable(): void {
644647
$this->assertQuery(
645-
'CREATE TEMPORARY TABLE `t` ( `id` INTEGER ) STRICT',
648+
'CREATE TEMPORARY TABLE `t` ( `id` INTEGER )' . STRICT,
646649
'CREATE TEMPORARY TABLE t (id INT)'
647650
);
648651
}
@@ -669,7 +672,7 @@ public function testAlterTableAddColumn(): void {
669672
array(
670673
'PRAGMA foreign_keys',
671674
'PRAGMA foreign_keys = OFF',
672-
'CREATE TABLE `<tmp-table>` ( `id` INTEGER, `a` INTEGER ) STRICT',
675+
'CREATE TABLE `<tmp-table>` ( `id` INTEGER, `a` INTEGER )' . STRICT,
673676
'INSERT INTO `<tmp-table>` (`rowid`, `id`) SELECT `rowid`, `id` FROM `t`',
674677
'DROP TABLE `t`',
675678
'ALTER TABLE `<tmp-table>` RENAME TO `t`',
@@ -700,7 +703,7 @@ public function testAlterTableAddColumnWithNotNull(): void {
700703
array(
701704
'PRAGMA foreign_keys',
702705
'PRAGMA foreign_keys = OFF',
703-
'CREATE TABLE `<tmp-table>` ( `id` INTEGER, `a` INTEGER NOT NULL ) STRICT',
706+
'CREATE TABLE `<tmp-table>` ( `id` INTEGER, `a` INTEGER NOT NULL )' . STRICT,
704707
'INSERT INTO `<tmp-table>` (`rowid`, `id`) SELECT `rowid`, `id` FROM `t`',
705708
'DROP TABLE `t`',
706709
'ALTER TABLE `<tmp-table>` RENAME TO `t`',
@@ -731,7 +734,7 @@ public function testAlterTableAddColumnWithDefault(): void {
731734
array(
732735
'PRAGMA foreign_keys',
733736
'PRAGMA foreign_keys = OFF',
734-
'CREATE TABLE `<tmp-table>` ( `id` INTEGER, `a` INTEGER DEFAULT \'0\' ) STRICT',
737+
'CREATE TABLE `<tmp-table>` ( `id` INTEGER, `a` INTEGER DEFAULT \'0\' )' . STRICT,
735738
'INSERT INTO `<tmp-table>` (`rowid`, `id`) SELECT `rowid`, `id` FROM `t`',
736739
'DROP TABLE `t`',
737740
'ALTER TABLE `<tmp-table>` RENAME TO `t`',
@@ -762,7 +765,7 @@ public function testAlterTableAddColumnWithNotNullAndDefault(): void {
762765
array(
763766
'PRAGMA foreign_keys',
764767
'PRAGMA foreign_keys = OFF',
765-
'CREATE TABLE `<tmp-table>` ( `id` INTEGER, `a` INTEGER NOT NULL DEFAULT \'0\' ) STRICT',
768+
'CREATE TABLE `<tmp-table>` ( `id` INTEGER, `a` INTEGER NOT NULL DEFAULT \'0\' )' . STRICT,
766769
'INSERT INTO `<tmp-table>` (`rowid`, `id`) SELECT `rowid`, `id` FROM `t`',
767770
'DROP TABLE `t`',
768771
'ALTER TABLE `<tmp-table>` RENAME TO `t`',
@@ -793,7 +796,7 @@ public function testAlterTableAddMultipleColumns(): void {
793796
array(
794797
'PRAGMA foreign_keys',
795798
'PRAGMA foreign_keys = OFF',
796-
'CREATE TABLE `<tmp-table>` ( `id` INTEGER, `a` INTEGER, `b` TEXT COLLATE NOCASE, `c` INTEGER ) STRICT',
799+
'CREATE TABLE `<tmp-table>` ( `id` INTEGER, `a` INTEGER, `b` TEXT COLLATE NOCASE, `c` INTEGER )' . STRICT,
797800
'INSERT INTO `<tmp-table>` (`rowid`, `id`) SELECT `rowid`, `id` FROM `t`',
798801
'DROP TABLE `t`',
799802
'ALTER TABLE `<tmp-table>` RENAME TO `t`',
@@ -830,7 +833,7 @@ public function testAlterTableDropColumn(): void {
830833
array(
831834
'PRAGMA foreign_keys',
832835
'PRAGMA foreign_keys = OFF',
833-
'CREATE TABLE `<tmp-table>` ( `id` INTEGER ) STRICT',
836+
'CREATE TABLE `<tmp-table>` ( `id` INTEGER )' . STRICT,
834837
'INSERT INTO `<tmp-table>` (`rowid`, `id`) SELECT `rowid`, `id` FROM `t`',
835838
'DROP TABLE `t`',
836839
'ALTER TABLE `<tmp-table>` RENAME TO `t`',
@@ -862,7 +865,7 @@ public function testAlterTableDropMultipleColumns(): void {
862865
array(
863866
'PRAGMA foreign_keys',
864867
'PRAGMA foreign_keys = OFF',
865-
'CREATE TABLE `<tmp-table>` ( `id` INTEGER ) STRICT',
868+
'CREATE TABLE `<tmp-table>` ( `id` INTEGER )' . STRICT,
866869
'INSERT INTO `<tmp-table>` (`rowid`, `id`) SELECT `rowid`, `id` FROM `t`',
867870
'DROP TABLE `t`',
868871
'ALTER TABLE `<tmp-table>` RENAME TO `t`',
@@ -900,7 +903,7 @@ public function testAlterTableAddAndDropColumns(): void {
900903
array(
901904
'PRAGMA foreign_keys',
902905
'PRAGMA foreign_keys = OFF',
903-
'CREATE TABLE `<tmp-table>` ( `b` INTEGER ) STRICT',
906+
'CREATE TABLE `<tmp-table>` ( `b` INTEGER )' . STRICT,
904907
'INSERT INTO `<tmp-table>` (`rowid`) SELECT `rowid` FROM `t`',
905908
'DROP TABLE `t`',
906909
'ALTER TABLE `<tmp-table>` RENAME TO `t`',
@@ -936,7 +939,7 @@ public function testAlterTableDropAndAddSingleColumn(): void {
936939
array(
937940
'PRAGMA foreign_keys',
938941
'PRAGMA foreign_keys = OFF',
939-
'CREATE TABLE `<tmp-table>` ( `a` INTEGER ) STRICT',
942+
'CREATE TABLE `<tmp-table>` ( `a` INTEGER )' . STRICT,
940943
'INSERT INTO `<tmp-table>` (`rowid`) SELECT `rowid` FROM `t`',
941944
'DROP TABLE `t`',
942945
'ALTER TABLE `<tmp-table>` RENAME TO `t`',
@@ -968,7 +971,7 @@ public function testAlterTableDropAndAddSingleColumn(): void {
968971

969972
public function testBitDataTypes(): void {
970973
$this->assertQuery(
971-
'CREATE TABLE `t` ( `i1` INTEGER, `i2` INTEGER ) STRICT',
974+
'CREATE TABLE `t` ( `i1` INTEGER, `i2` INTEGER )' . STRICT,
972975
'CREATE TABLE t (i1 BIT, i2 BIT(10))'
973976
);
974977

@@ -991,7 +994,7 @@ public function testBitDataTypes(): void {
991994

992995
public function testBooleanDataTypes(): void {
993996
$this->assertQuery(
994-
'CREATE TABLE `t` ( `i1` INTEGER, `i2` INTEGER ) STRICT',
997+
'CREATE TABLE `t` ( `i1` INTEGER, `i2` INTEGER )' . STRICT,
995998
'CREATE TABLE t (i1 BOOL, i2 BOOLEAN)'
996999
);
9971000

@@ -1014,7 +1017,7 @@ public function testBooleanDataTypes(): void {
10141017

10151018
public function testIntegerDataTypes(): void {
10161019
$this->assertQuery(
1017-
'CREATE TABLE `t` ( `i1` INTEGER, `i2` INTEGER, `i3` INTEGER, `i4` INTEGER, `i5` INTEGER, `i6` INTEGER ) STRICT',
1020+
'CREATE TABLE `t` ( `i1` INTEGER, `i2` INTEGER, `i3` INTEGER, `i4` INTEGER, `i5` INTEGER, `i6` INTEGER )' . STRICT,
10181021
'CREATE TABLE t (i1 TINYINT, i2 SMALLINT, i3 MEDIUMINT, i4 INT, i5 INTEGER, i6 BIGINT)'
10191022
);
10201023

@@ -1045,7 +1048,7 @@ public function testIntegerDataTypes(): void {
10451048

10461049
public function testFloatDataTypes(): void {
10471050
$this->assertQuery(
1048-
'CREATE TABLE `t` ( `f1` REAL, `f2` REAL, `f3` REAL, `f4` REAL ) STRICT',
1051+
'CREATE TABLE `t` ( `f1` REAL, `f2` REAL, `f3` REAL, `f4` REAL )' . STRICT,
10491052
'CREATE TABLE t (f1 FLOAT, f2 DOUBLE, f3 DOUBLE PRECISION, f4 REAL)'
10501053
);
10511054

@@ -1072,7 +1075,7 @@ public function testFloatDataTypes(): void {
10721075

10731076
public function testDecimalTypes(): void {
10741077
$this->assertQuery(
1075-
'CREATE TABLE `t` ( `f1` REAL, `f2` REAL, `f3` REAL, `f4` REAL ) STRICT',
1078+
'CREATE TABLE `t` ( `f1` REAL, `f2` REAL, `f3` REAL, `f4` REAL )' . STRICT,
10761079
'CREATE TABLE t (f1 DECIMAL, f2 DEC, f3 FIXED, f4 NUMERIC)'
10771080
);
10781081

@@ -1099,7 +1102,7 @@ public function testDecimalTypes(): void {
10991102

11001103
public function testCharDataTypes(): void {
11011104
$this->assertQuery(
1102-
'CREATE TABLE `t` ( `c1` TEXT COLLATE NOCASE, `c2` TEXT COLLATE NOCASE ) STRICT',
1105+
'CREATE TABLE `t` ( `c1` TEXT COLLATE NOCASE, `c2` TEXT COLLATE NOCASE )' . STRICT,
11031106
'CREATE TABLE t (c1 CHAR, c2 CHAR(10))'
11041107
);
11051108

@@ -1122,7 +1125,7 @@ public function testCharDataTypes(): void {
11221125

11231126
public function testVarcharDataTypes(): void {
11241127
$this->assertQuery(
1125-
'CREATE TABLE `t` ( `c1` TEXT COLLATE NOCASE, `c2` TEXT COLLATE NOCASE, `c3` TEXT COLLATE NOCASE ) STRICT',
1128+
'CREATE TABLE `t` ( `c1` TEXT COLLATE NOCASE, `c2` TEXT COLLATE NOCASE, `c3` TEXT COLLATE NOCASE )' . STRICT,
11261129
'CREATE TABLE t (c1 VARCHAR(255), c2 CHAR VARYING(255), c3 CHARACTER VARYING(255))'
11271130
);
11281131

@@ -1147,7 +1150,7 @@ public function testVarcharDataTypes(): void {
11471150

11481151
public function testNationalCharDataTypes(): void {
11491152
$this->assertQuery(
1150-
'CREATE TABLE `t` ( `c1` TEXT COLLATE NOCASE, `c2` TEXT COLLATE NOCASE, `c3` TEXT COLLATE NOCASE, `c4` TEXT COLLATE NOCASE ) STRICT',
1153+
'CREATE TABLE `t` ( `c1` TEXT COLLATE NOCASE, `c2` TEXT COLLATE NOCASE, `c3` TEXT COLLATE NOCASE, `c4` TEXT COLLATE NOCASE )' . STRICT,
11511154
'CREATE TABLE t (c1 NATIONAL CHAR, c2 NCHAR, c3 NATIONAL CHAR (10), c4 NCHAR(10))'
11521155
);
11531156

@@ -1174,7 +1177,7 @@ public function testNationalCharDataTypes(): void {
11741177

11751178
public function testNcharVarcharDataTypes(): void {
11761179
$this->assertQuery(
1177-
'CREATE TABLE `t` ( `c1` TEXT COLLATE NOCASE, `c2` TEXT COLLATE NOCASE, `c3` TEXT COLLATE NOCASE ) STRICT',
1180+
'CREATE TABLE `t` ( `c1` TEXT COLLATE NOCASE, `c2` TEXT COLLATE NOCASE, `c3` TEXT COLLATE NOCASE )' . STRICT,
11781181
'CREATE TABLE t (c1 NCHAR VARCHAR(255), c2 NCHAR VARYING(255), c3 NVARCHAR(255))'
11791182
);
11801183

@@ -1199,7 +1202,7 @@ public function testNcharVarcharDataTypes(): void {
11991202

12001203
public function testNationalVarcharDataTypes(): void {
12011204
$this->assertQuery(
1202-
'CREATE TABLE `t` ( `c1` TEXT COLLATE NOCASE, `c2` TEXT COLLATE NOCASE, `c3` TEXT COLLATE NOCASE ) STRICT',
1205+
'CREATE TABLE `t` ( `c1` TEXT COLLATE NOCASE, `c2` TEXT COLLATE NOCASE, `c3` TEXT COLLATE NOCASE )' . STRICT,
12031206
'CREATE TABLE t (c1 NATIONAL VARCHAR(255), c2 NATIONAL CHAR VARYING(255), c3 NATIONAL CHARACTER VARYING(255))'
12041207
);
12051208

@@ -1224,7 +1227,7 @@ public function testNationalVarcharDataTypes(): void {
12241227

12251228
public function testTextDataTypes(): void {
12261229
$this->assertQuery(
1227-
'CREATE TABLE `t` ( `t1` TEXT COLLATE NOCASE, `t2` TEXT COLLATE NOCASE, `t3` TEXT COLLATE NOCASE, `t4` TEXT COLLATE NOCASE ) STRICT',
1230+
'CREATE TABLE `t` ( `t1` TEXT COLLATE NOCASE, `t2` TEXT COLLATE NOCASE, `t3` TEXT COLLATE NOCASE, `t4` TEXT COLLATE NOCASE )' . STRICT,
12281231
'CREATE TABLE t (t1 TINYTEXT, t2 TEXT, t3 MEDIUMTEXT, t4 LONGTEXT)'
12291232
);
12301233

@@ -1251,7 +1254,7 @@ public function testTextDataTypes(): void {
12511254

12521255
public function testEnumDataTypes(): void {
12531256
$this->assertQuery(
1254-
'CREATE TABLE `t` ( `e` TEXT COLLATE NOCASE ) STRICT',
1257+
'CREATE TABLE `t` ( `e` TEXT COLLATE NOCASE )' . STRICT,
12551258
'CREATE TABLE t (e ENUM("a", "b", "c"))'
12561259
);
12571260

@@ -1272,7 +1275,7 @@ public function testEnumDataTypes(): void {
12721275

12731276
public function testDateAndTimeDataTypes(): void {
12741277
$this->assertQuery(
1275-
'CREATE TABLE `t` ( `d` TEXT COLLATE NOCASE, `t` TEXT COLLATE NOCASE, `dt` TEXT COLLATE NOCASE, `ts` TEXT COLLATE NOCASE, `y` TEXT COLLATE NOCASE ) STRICT',
1278+
'CREATE TABLE `t` ( `d` TEXT COLLATE NOCASE, `t` TEXT COLLATE NOCASE, `dt` TEXT COLLATE NOCASE, `ts` TEXT COLLATE NOCASE, `y` TEXT COLLATE NOCASE )' . STRICT,
12761279
'CREATE TABLE t (d DATE, t TIME, dt DATETIME, ts TIMESTAMP, y YEAR)'
12771280
);
12781281

@@ -1301,7 +1304,7 @@ public function testDateAndTimeDataTypes(): void {
13011304

13021305
public function testBinaryDataTypes(): void {
13031306
$this->assertQuery(
1304-
'CREATE TABLE `t` ( `b` BLOB, `v` BLOB ) STRICT',
1307+
'CREATE TABLE `t` ( `b` BLOB, `v` BLOB )' . STRICT,
13051308
'CREATE TABLE t (b BINARY, v VARBINARY(255))'
13061309
);
13071310

@@ -1324,7 +1327,7 @@ public function testBinaryDataTypes(): void {
13241327

13251328
public function testBlobDataTypes(): void {
13261329
$this->assertQuery(
1327-
'CREATE TABLE `t` ( `b1` BLOB, `b2` BLOB, `b3` BLOB, `b4` BLOB ) STRICT',
1330+
'CREATE TABLE `t` ( `b1` BLOB, `b2` BLOB, `b3` BLOB, `b4` BLOB )' . STRICT,
13281331
'CREATE TABLE t (b1 TINYBLOB, b2 BLOB, b3 MEDIUMBLOB, b4 LONGBLOB)'
13291332
);
13301333

@@ -1351,7 +1354,7 @@ public function testBlobDataTypes(): void {
13511354

13521355
public function testBasicSpatialDataTypes(): void {
13531356
$this->assertQuery(
1354-
'CREATE TABLE `t` ( `g1` TEXT COLLATE NOCASE, `g2` TEXT COLLATE NOCASE, `g3` TEXT COLLATE NOCASE, `g4` TEXT COLLATE NOCASE ) STRICT',
1357+
'CREATE TABLE `t` ( `g1` TEXT COLLATE NOCASE, `g2` TEXT COLLATE NOCASE, `g3` TEXT COLLATE NOCASE, `g4` TEXT COLLATE NOCASE )' . STRICT,
13551358
'CREATE TABLE t (g1 GEOMETRY, g2 POINT, g3 LINESTRING, g4 POLYGON)'
13561359
);
13571360

@@ -1378,7 +1381,7 @@ public function testBasicSpatialDataTypes(): void {
13781381

13791382
public function testMultiObjectSpatialDataTypes(): void {
13801383
$this->assertQuery(
1381-
'CREATE TABLE `t` ( `g1` TEXT COLLATE NOCASE, `g2` TEXT COLLATE NOCASE, `g3` TEXT COLLATE NOCASE ) STRICT',
1384+
'CREATE TABLE `t` ( `g1` TEXT COLLATE NOCASE, `g2` TEXT COLLATE NOCASE, `g3` TEXT COLLATE NOCASE )' . STRICT,
13821385
'CREATE TABLE t (g1 MULTIPOINT, g2 MULTILINESTRING, g3 MULTIPOLYGON)'
13831386
);
13841387

@@ -1403,7 +1406,7 @@ public function testMultiObjectSpatialDataTypes(): void {
14031406

14041407
public function testGeometryCollectionDataTypes(): void {
14051408
$this->assertQuery(
1406-
'CREATE TABLE `t` ( `g1` TEXT COLLATE NOCASE, `g2` TEXT COLLATE NOCASE ) STRICT',
1409+
'CREATE TABLE `t` ( `g1` TEXT COLLATE NOCASE, `g2` TEXT COLLATE NOCASE )' . STRICT,
14071410
'CREATE TABLE t (g1 GEOMCOLLECTION, g2 GEOMETRYCOLLECTION)'
14081411
);
14091412

@@ -1426,7 +1429,7 @@ public function testGeometryCollectionDataTypes(): void {
14261429

14271430
public function testSerialDataTypes(): void {
14281431
$this->assertQuery(
1429-
'CREATE TABLE `t` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT ) STRICT',
1432+
'CREATE TABLE `t` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT )' . STRICT,
14301433
'CREATE TABLE t (id SERIAL)'
14311434
);
14321435

wp-includes/sqlite-ast/class-wp-pdo-mysql-on-sqlite.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5792,7 +5792,13 @@ function ( $column ) {
57925792
$this->quote_sqlite_identifier( $new_table_name ?? $table_name )
57935793
);
57945794
$create_table_query .= implode( ",\n", $rows );
5795-
$create_table_query .= "\n) STRICT";
5795+
$create_table_query .= "\n)";
5796+
5797+
$bypass_strict = defined( 'WP_SQLITE_UNSAFE_ENABLE_UNSUPPORTED_VERSIONS' ) && WP_SQLITE_UNSAFE_ENABLE_UNSUPPORTED_VERSIONS;
5798+
if ( ! $bypass_strict ) {
5799+
$create_table_query .= ' STRICT';
5800+
}
5801+
57965802
return array_merge( array( $create_table_query ), $create_index_queries, $on_update_queries );
57975803
}
57985804

0 commit comments

Comments
 (0)