1--
2-- patch-archive-drop-ar_comment.sql
3--
4-- T166732. Drop old xx_comment fields, and defaults from xx_comment_id fields.
5
6BEGIN;
7
8DROP TABLE IF EXISTS /*_*/archive_tmp;
9CREATE TABLE /*_*/archive_tmp (
10  ar_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
11  ar_namespace int NOT NULL default 0,
12  ar_title varchar(255) binary NOT NULL default '',
13  ar_comment_id bigint unsigned NOT NULL,
14  ar_user int unsigned NOT NULL default 0,
15  ar_user_text varchar(255) binary NOT NULL DEFAULT '',
16  ar_actor bigint unsigned NOT NULL DEFAULT 0,
17  ar_timestamp binary(14) NOT NULL default '',
18  ar_minor_edit tinyint NOT NULL default 0,
19  ar_rev_id int unsigned NOT NULL,
20  ar_text_id int unsigned NOT NULL DEFAULT 0,
21  ar_deleted tinyint unsigned NOT NULL default 0,
22  ar_len int unsigned,
23  ar_page_id int unsigned,
24  ar_parent_id int unsigned default NULL,
25  ar_sha1 varbinary(32) NOT NULL default '',
26  ar_content_model varbinary(32) DEFAULT NULL,
27  ar_content_format varbinary(64) DEFAULT NULL
28) /*$wgDBTableOptions*/;
29
30INSERT OR IGNORE INTO /*_*/archive_tmp (
31	ar_id, ar_namespace, ar_title, ar_comment_id, ar_user, ar_user_text, ar_actor,
32	ar_timestamp, ar_minor_edit, ar_rev_id, ar_text_id, ar_deleted,
33	ar_len, ar_page_id, ar_parent_id, ar_sha1, ar_content_model, ar_content_format
34  ) SELECT
35	ar_id, ar_namespace, ar_title, ar_comment_id, ar_user, ar_user_text, ar_actor,
36	ar_timestamp, ar_minor_edit, ar_rev_id, ar_text_id, ar_deleted,
37	ar_len, ar_page_id, ar_parent_id, ar_sha1, ar_content_model, ar_content_format
38  FROM /*_*/archive;
39
40DROP TABLE /*_*/archive;
41ALTER TABLE /*_*/archive_tmp RENAME TO /*_*/archive;
42CREATE INDEX /*i*/name_title_timestamp ON /*_*/archive (ar_namespace,ar_title,ar_timestamp);
43CREATE INDEX /*i*/ar_usertext_timestamp ON /*_*/archive (ar_user_text,ar_timestamp);
44CREATE INDEX /*i*/ar_actor_timestamp ON /*_*/archive (ar_actor,ar_timestamp);
45CREATE UNIQUE INDEX /*i*/ar_revid_uniq ON /*_*/archive (ar_rev_id);
46
47COMMIT;
48