wiki.techinc.nl/maintenance/sqlite/archives/patch-image-drop-img_description.sql
Brad Jorsch 0abb9338f8 Mostly drop old comment schemas
This removes most of the pre-CommentStore text columns, and the
$wgCommentTableSchemaMigrationStage setting that used to determine
whether the columns were used.

rev_comment remains in the code, as on Wikimedia wikis the revision
table is too large to alter at this time. A future change will combine
that with the removal of rev_user_text, rev_content_model, and
rev_content_format (and the addition of rev_comment_id and rev_actor).

CommentStore's constructor continues to take a $stage parameter, and
continues to have the logic for handling it, for the benefit of
extensions that might need their own migration process.

Bug: T166733
Change-Id: I1479c73774e01ead1490adf6128f820c09bce9d4
2019-02-07 16:59:27 +11:00

47 lines
2.1 KiB
PL/PgSQL

--
-- patch-image-drop-img_description.sql
--
-- T166732. Drop old xx_comment fields, and defaults from xx_comment_id fields.
BEGIN;
DROP TABLE IF EXISTS /*_*/image_tmp;
CREATE TABLE /*_*/image_tmp (
img_name varchar(255) binary NOT NULL default '' PRIMARY KEY,
img_size int unsigned NOT NULL default 0,
img_width int NOT NULL default 0,
img_height int NOT NULL default 0,
img_metadata mediumblob NOT NULL,
img_bits int NOT NULL default 0,
img_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE", "3D") default NULL,
img_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart", "chemical") NOT NULL default "unknown",
img_minor_mime varbinary(100) NOT NULL default "unknown",
img_description_id bigint unsigned NOT NULL,
img_user int unsigned NOT NULL default 0,
img_user_text varchar(255) binary NOT NULL DEFAULT '',
img_actor bigint unsigned NOT NULL DEFAULT 0,
img_timestamp varbinary(14) NOT NULL default '',
img_sha1 varbinary(32) NOT NULL default ''
) /*$wgDBTableOptions*/;
INSERT OR IGNORE INTO /*_*/image_tmp (
img_name, img_size, img_width, img_height, img_metadata, img_bits,
img_media_type, img_major_mime, img_minor_mime, img_description_id, img_user,
img_user_text, img_actor, img_timestamp, img_sha1
) SELECT
img_name, img_size, img_width, img_height, img_metadata, img_bits,
img_media_type, img_major_mime, img_minor_mime, img_description_id, img_user,
img_user_text, img_actor, img_timestamp, img_sha1
FROM /*_*/image;
DROP TABLE /*_*/image;
ALTER TABLE /*_*/image_tmp RENAME TO /*_*/image;
CREATE INDEX /*i*/img_user_timestamp ON /*_*/image (img_user,img_timestamp);
CREATE INDEX /*i*/img_usertext_timestamp ON /*_*/image (img_user_text,img_timestamp);
CREATE INDEX /*i*/img_actor_timestamp ON /*_*/image (img_actor,img_timestamp);
CREATE INDEX /*i*/img_size ON /*_*/image (img_size);
CREATE INDEX /*i*/img_timestamp ON /*_*/image (img_timestamp);
CREATE INDEX /*i*/img_sha1 ON /*_*/image (img_sha1(10));
CREATE INDEX /*i*/img_media_mime ON /*_*/image (img_media_type,img_major_mime,img_minor_mime);
COMMIT;