From 2b441eba406f2c4988da80d264738d45930bf041 Mon Sep 17 00:00:00 2001 From: umherirrender Date: Mon, 14 Apr 2014 20:44:22 +0200 Subject: [PATCH] Drop rc_cur_time from recentchanges Field was removed in 1.23 from sql statements, but kept to allow easier rollback on version update from 1.22 -> 1.23, when something gets wrong with the new version. Bug: 40667 Follow-Up: I4a9c2fa813d1f25dfb755e564f7677a212934d7b Change-Id: I48989aceec31019f0b6c98aaeafaf60e975244df --- includes/installer/MysqlUpdater.php | 1 + includes/installer/SqliteUpdater.php | 1 + .../archives/patch-drop-rc_cur_time.sql | 2 + .../archives/patch-drop-rc_cur_time.sql | 45 +++++++++++++++++++ maintenance/tables.sql | 5 --- 5 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 maintenance/archives/patch-drop-rc_cur_time.sql create mode 100644 maintenance/sqlite/archives/patch-drop-rc_cur_time.sql diff --git a/includes/installer/MysqlUpdater.php b/includes/installer/MysqlUpdater.php index 3bc43d9182..8b77cb102f 100644 --- a/includes/installer/MysqlUpdater.php +++ b/includes/installer/MysqlUpdater.php @@ -253,6 +253,7 @@ class MysqlUpdater extends DatabaseUpdater { // 1.24 array( 'addField', 'page_props', 'pp_sortkey', 'patch-pp_sortkey.sql' ), + array( 'dropField', 'recentchanges', 'rc_cur_time', 'patch-drop-rc_cur_time.sql' ), ); } diff --git a/includes/installer/SqliteUpdater.php b/includes/installer/SqliteUpdater.php index 874bbea94d..7813115de2 100644 --- a/includes/installer/SqliteUpdater.php +++ b/includes/installer/SqliteUpdater.php @@ -131,6 +131,7 @@ class SqliteUpdater extends DatabaseUpdater { // 1.24 array( 'addField', 'page_props', 'pp_sortkey', 'patch-pp_sortkey.sql' ), + array( 'dropField', 'recentchanges', 'rc_cur_time', 'patch-drop-rc_cur_time.sql' ), ); } diff --git a/maintenance/archives/patch-drop-rc_cur_time.sql b/maintenance/archives/patch-drop-rc_cur_time.sql new file mode 100644 index 0000000000..f1bc9e8b6d --- /dev/null +++ b/maintenance/archives/patch-drop-rc_cur_time.sql @@ -0,0 +1,2 @@ +-- rc_cur_time is no longer used, delete the field +ALTER TABLE /*$wgDBprefix*/recentchanges DROP COLUMN rc_cur_time; \ No newline at end of file diff --git a/maintenance/sqlite/archives/patch-drop-rc_cur_time.sql b/maintenance/sqlite/archives/patch-drop-rc_cur_time.sql new file mode 100644 index 0000000000..350479fbbf --- /dev/null +++ b/maintenance/sqlite/archives/patch-drop-rc_cur_time.sql @@ -0,0 +1,45 @@ +-- rc_cur_time is no longer used, delete the field +CREATE TABLE /*_*/recentchanges_tmp ( + rc_id int NOT NULL PRIMARY KEY AUTO_INCREMENT, + rc_timestamp varbinary(14) NOT NULL default '', + rc_user int unsigned NOT NULL default 0, + rc_user_text varchar(255) binary NOT NULL, + rc_namespace int NOT NULL default 0, + rc_title varchar(255) binary NOT NULL default '', + rc_comment varchar(255) binary NOT NULL default '', + rc_minor tinyint unsigned NOT NULL default 0, + rc_bot tinyint unsigned NOT NULL default 0, + rc_new tinyint unsigned NOT NULL default 0, + rc_cur_id int unsigned NOT NULL default 0, + rc_this_oldid int unsigned NOT NULL default 0, + rc_last_oldid int unsigned NOT NULL default 0, + rc_type tinyint unsigned NOT NULL default 0, + rc_source varchar(16) binary not null default '', + rc_patrolled tinyint unsigned NOT NULL default 0, + rc_ip varbinary(40) NOT NULL default '', + rc_old_len int, + rc_new_len int, + rc_deleted tinyint unsigned NOT NULL default 0, + rc_logid int unsigned NOT NULL default 0, + rc_log_type varbinary(255) NULL default NULL, + rc_log_action varbinary(255) NULL default NULL, + rc_params blob NULL +) /*$wgDBTableOptions*/; + +INSERT INTO /*_*/recentchanges_tmp + SELECT rc_id, rc_timestamp, rc_user, rc_user_text, rc_namespace, rc_title, rc_comment, rc_minor, + rc_bot, rc_new, rc_cur_id, rc_this_oldid, rc_last_oldid, rc_type, rc_source, rc_patrolled, + rc_ip, rc_old_len, rc_new_len, rc_deleted, rc_logid, rc_log_type, rc_log_action, rc_params + FROM /*_*/recentchanges; + +DROP TABLE /*_*/recentchanges; + +ALTER TABLE /*_*/recentchanges_tmp RENAME TO /*_*/recentchanges; + +CREATE INDEX /*i*/rc_timestamp ON /*_*/recentchanges (rc_timestamp); +CREATE INDEX /*i*/rc_namespace_title ON /*_*/recentchanges (rc_namespace, rc_title); +CREATE INDEX /*i*/rc_cur_id ON /*_*/recentchanges (rc_cur_id); +CREATE INDEX /*i*/new_name_timestamp ON /*_*/recentchanges (rc_new,rc_namespace,rc_timestamp); +CREATE INDEX /*i*/rc_ip ON /*_*/recentchanges (rc_ip); +CREATE INDEX /*i*/rc_ns_usertext ON /*_*/recentchanges (rc_namespace, rc_user_text); +CREATE INDEX /*i*/rc_user_text ON /*_*/recentchanges (rc_user_text, rc_timestamp); \ No newline at end of file diff --git a/maintenance/tables.sql b/maintenance/tables.sql index d39ee87fe0..1b8d618513 100644 --- a/maintenance/tables.sql +++ b/maintenance/tables.sql @@ -1035,11 +1035,6 @@ CREATE TABLE /*_*/recentchanges ( rc_id int NOT NULL PRIMARY KEY AUTO_INCREMENT, rc_timestamp varbinary(14) NOT NULL default '', - -- This is no longer used - -- Field kept in database for downgrades - -- @todo: add drop patch with 1.24 - rc_cur_time varbinary(14) NOT NULL default '', - -- As in revision rc_user int unsigned NOT NULL default 0, rc_user_text varchar(255) binary NOT NULL, -- 2.20.1