diff options
author | Amir Sarabadani <ladsgroup@gmail.com> | 2025-01-20 20:01:17 +0100 |
---|---|---|
committer | Amir Sarabadani <ladsgroup@gmail.com> | 2025-01-21 15:07:44 +0100 |
commit | a7a607fc40806df29dc4f220623156562575ba4c (patch) | |
tree | aa985e6bba61d5af1c9ec699e312d6ff142de224 /sql/sqlite | |
parent | 54989cd56e5de0c1d1d8bcf2efadd2032bf6f995 (diff) | |
download | mediawikicore-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.sql | 55 | ||||
-rw-r--r-- | sql/sqlite/patch-collation.sql | 7 | ||||
-rw-r--r-- | sql/sqlite/tables-generated.sql | 15 |
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); |