aboutsummaryrefslogtreecommitdiffstats
path: root/sql/sqlite
diff options
context:
space:
mode:
authorAmir Sarabadani <ladsgroup@gmail.com>2025-01-20 20:01:17 +0100
committerAmir Sarabadani <ladsgroup@gmail.com>2025-01-21 15:07:44 +0100
commita7a607fc40806df29dc4f220623156562575ba4c (patch)
treeaa985e6bba61d5af1c9ec699e312d6ff142de224 /sql/sqlite
parent54989cd56e5de0c1d1d8bcf2efadd2032bf6f995 (diff)
downloadmediawikicore-a7a607fc40806df29dc4f220623156562575ba4c.tar.gz
mediawikicore-a7a607fc40806df29dc4f220623156562575ba4c.zip
schema: Add cl_target_id and cl_collation_id to categorylinks
To normalize cl_to and cl_collation Bug: T299951 Change-Id: If58190f3cc912ffa99c623dc9f51d530d5c87186
Diffstat (limited to 'sql/sqlite')
-rw-r--r--sql/sqlite/patch-categorylinks-target_id.sql55
-rw-r--r--sql/sqlite/patch-collation.sql7
-rw-r--r--sql/sqlite/tables-generated.sql15
3 files changed, 77 insertions, 0 deletions
diff --git a/sql/sqlite/patch-categorylinks-target_id.sql b/sql/sqlite/patch-categorylinks-target_id.sql
new file mode 100644
index 000000000000..4dce6be527f8
--- /dev/null
+++ b/sql/sqlite/patch-categorylinks-target_id.sql
@@ -0,0 +1,55 @@
+-- This file is automatically generated using maintenance/generateSchemaChangeSql.php.
+-- Source: sql/abstractSchemaChanges/patch-categorylinks-target_id.json
+-- Do not modify this file directly.
+-- See https://www.mediawiki.org/wiki/Manual:Schema_changes
+CREATE TEMPORARY TABLE /*_*/__temp__categorylinks AS
+SELECT
+ cl_from,
+ cl_to,
+ cl_sortkey,
+ cl_sortkey_prefix,
+ cl_timestamp,
+ cl_collation,
+ cl_type
+FROM /*_*/categorylinks;
+DROP TABLE /*_*/categorylinks;
+
+
+CREATE TABLE /*_*/categorylinks (
+ cl_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
+ cl_to BLOB DEFAULT '' NOT NULL,
+ cl_sortkey BLOB DEFAULT '' NOT NULL,
+ cl_sortkey_prefix BLOB DEFAULT '' NOT NULL,
+ cl_timestamp DATETIME NOT NULL,
+ cl_collation BLOB DEFAULT '' NOT NULL,
+ cl_type TEXT DEFAULT 'page' NOT NULL,
+ cl_collation_id SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
+ cl_target_id BIGINT UNSIGNED DEFAULT NULL,
+ PRIMARY KEY(cl_from, cl_to)
+ );
+INSERT INTO /*_*/categorylinks (
+ cl_from, cl_to, cl_sortkey, cl_sortkey_prefix,
+ cl_timestamp, cl_collation, cl_type
+ )
+SELECT
+ cl_from,
+ cl_to,
+ cl_sortkey,
+ cl_sortkey_prefix,
+ cl_timestamp,
+ cl_collation,
+ cl_type
+FROM
+ /*_*/__temp__categorylinks;
+DROP TABLE /*_*/__temp__categorylinks;
+
+CREATE INDEX cl_sortkey ON /*_*/categorylinks (
+ cl_to, cl_type, cl_sortkey, cl_from
+ );
+
+CREATE INDEX cl_timestamp ON /*_*/categorylinks (cl_to, cl_timestamp);
+
+CREATE INDEX cl_sortkey_id ON /*_*/categorylinks (
+ cl_target_id, cl_type, cl_sortkey,
+ cl_from
+ );
diff --git a/sql/sqlite/patch-collation.sql b/sql/sqlite/patch-collation.sql
new file mode 100644
index 000000000000..a6d5554e6e56
--- /dev/null
+++ b/sql/sqlite/patch-collation.sql
@@ -0,0 +1,7 @@
+
+CREATE TABLE /*_*/collation (
+ collation_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
+ collation_name BLOB NOT NULL
+);
+
+CREATE UNIQUE INDEX collation_name ON /*_*/collation (collation_name);
diff --git a/sql/sqlite/tables-generated.sql b/sql/sqlite/tables-generated.sql
index c558b59fd381..2a27dc4fd171 100644
--- a/sql/sqlite/tables-generated.sql
+++ b/sql/sqlite/tables-generated.sql
@@ -484,6 +484,8 @@ CREATE TABLE /*_*/categorylinks (
cl_timestamp DATETIME NOT NULL,
cl_collation BLOB DEFAULT '' NOT NULL,
cl_type TEXT DEFAULT 'page' NOT NULL,
+ cl_collation_id SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
+ cl_target_id BIGINT UNSIGNED DEFAULT NULL,
PRIMARY KEY(cl_from, cl_to)
);
@@ -493,6 +495,11 @@ CREATE INDEX cl_sortkey ON /*_*/categorylinks (
CREATE INDEX cl_timestamp ON /*_*/categorylinks (cl_to, cl_timestamp);
+CREATE INDEX cl_sortkey_id ON /*_*/categorylinks (
+ cl_target_id, cl_type, cl_sortkey,
+ cl_from
+);
+
CREATE TABLE /*_*/logging (
log_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
@@ -916,3 +923,11 @@ CREATE TABLE /*_*/filetypes (
CREATE UNIQUE INDEX ft_media_mime ON /*_*/filetypes (
ft_media_type, ft_major_mime, ft_minor_mime
);
+
+
+CREATE TABLE /*_*/collation (
+ collation_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
+ collation_name BLOB NOT NULL
+);
+
+CREATE UNIQUE INDEX collation_name ON /*_*/collation (collation_name);