wiki.techinc.nl/maintenance/sqlite/archives/patch-pagelinks-pl_title-varbinary.sql
Amir Sarabadani 31dd3a9ebe Migrate pagelinks table to abstract schema
In order to migrate MySQL and Sqlite to abstract schema changed the
pl_title data type from varchar binary to varbinary. This wouldn't
affect production.

For migrating Postgres:
 - Dropping foreign key on pl_from
 - Changing data type of pl_namespace from SMALLINT to INT and setting
   its default
 - Setting default of empty string for pl_title
 - Completely rewriting indexes to make it synced with MySQL

Bug: T164898
Bug: T230428
Change-Id: I4af8202742a1826e6b3f8ff36cf4f7b612b82690
2020-08-19 13:58:00 +02:00

19 lines
651 B
SQL

CREATE TABLE /*_*/pagelinks_tmp (
pl_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
pl_namespace INTEGER DEFAULT 0 NOT NULL,
pl_title BLOB DEFAULT '' NOT NULL,
pl_from_namespace INTEGER DEFAULT 0 NOT NULL,
PRIMARY KEY(pl_from, pl_namespace, pl_title)
);
INSERT INTO /*_*/pagelinks_tmp
SELECT pl_from, pl_namespace, pl_title, pl_from_namespace
FROM /*_*/pagelinks;
DROP TABLE /*_*/pagelinks;
ALTER TABLE /*_*/pagelinks_tmp RENAME TO /*_*/pagelinks;
CREATE INDEX pl_namespace ON /*_*/pagelinks (pl_namespace, pl_title, pl_from);
CREATE INDEX pl_backlinks_namespace ON /*_*/pagelinks (
pl_from_namespace, pl_namespace,
pl_title, pl_from
);