From adf9875c745db0aa8c072b115150a5cfe32c7f9f Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Thu, 14 Jul 2016 12:01:04 -0400 Subject: [PATCH] Add rc_name_type_patrolled_timestamp index Bug: T140108 Change-Id: I382a5f0daef703a3d16fe008a5e1d1402f2c7b33 --- includes/installer/MssqlUpdater.php | 6 +++++- includes/installer/MysqlUpdater.php | 4 ++++ includes/installer/OracleUpdater.php | 4 ++++ includes/installer/PostgresUpdater.php | 4 ++++ includes/installer/SqliteUpdater.php | 4 ++++ .../patch-add-rc_name_type_patrolled_timestamp_index.sql | 2 ++ maintenance/mssql/tables.sql | 1 + .../patch-add-rc_name_type_patrolled_timestamp_index.sql | 4 ++++ maintenance/oracle/tables.sql | 1 + maintenance/postgres/tables.sql | 1 + maintenance/tables.sql | 1 + 11 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 maintenance/archives/patch-add-rc_name_type_patrolled_timestamp_index.sql create mode 100644 maintenance/oracle/archives/patch-add-rc_name_type_patrolled_timestamp_index.sql diff --git a/includes/installer/MssqlUpdater.php b/includes/installer/MssqlUpdater.php index accc42fd2f..770d3bfa77 100644 --- a/includes/installer/MssqlUpdater.php +++ b/includes/installer/MssqlUpdater.php @@ -87,7 +87,11 @@ class MssqlUpdater extends DatabaseUpdater { [ 'updateSchema', 'recentchanges', 'recentchanges-drop-fks', 'patch-recentchanges-drop-fks.sql' ], [ 'updateSchema', 'logging', 'logging-drop-fks', 'patch-logging-drop-fks.sql' ], - [ 'updateSchema', 'archive', 'archive-drop-fks', 'patch-archive-drop-fks.sql' ] + [ 'updateSchema', 'archive', 'archive-drop-fks', 'patch-archive-drop-fks.sql' ], + + // 1.28 + [ 'addIndex', 'recentchanges', 'rc_name_type_patrolled_timestamp', + 'patch-add-rc_name_type_patrolled_timestamp_index.sql' ], ]; } diff --git a/includes/installer/MysqlUpdater.php b/includes/installer/MysqlUpdater.php index d414d9071f..719b66aafb 100644 --- a/includes/installer/MysqlUpdater.php +++ b/includes/installer/MysqlUpdater.php @@ -283,6 +283,10 @@ class MysqlUpdater extends DatabaseUpdater { [ 'addIndex', 'categorylinks', 'cl_collation_ext', 'patch-add-cl_collation_ext_index.sql' ], [ 'doCollationUpdate' ], + + // 1.28 + [ 'addIndex', 'recentchanges', 'rc_name_type_patrolled_timestamp', + 'patch-add-rc_name_type_patrolled_timestamp_index.sql' ], ]; } diff --git a/includes/installer/OracleUpdater.php b/includes/installer/OracleUpdater.php index 334256b784..8075aace43 100644 --- a/includes/installer/OracleUpdater.php +++ b/includes/installer/OracleUpdater.php @@ -113,6 +113,10 @@ class OracleUpdater extends DatabaseUpdater { [ 'dropTable', 'msg_resource' ], [ 'addField', 'watchlist', 'wl_id', 'patch-watchlist-wl_id.sql' ], + // 1.28 + [ 'addIndex', 'recentchanges', 'rc_name_type_patrolled_timestamp', + 'patch-add-rc_name_type_patrolled_timestamp_index.sql' ], + // KEEP THIS AT THE BOTTOM!! [ 'doRebuildDuplicateFunction' ], diff --git a/includes/installer/PostgresUpdater.php b/includes/installer/PostgresUpdater.php index a3b50ac565..be94d91711 100644 --- a/includes/installer/PostgresUpdater.php +++ b/includes/installer/PostgresUpdater.php @@ -433,6 +433,10 @@ class PostgresUpdater extends DatabaseUpdater { 'addPgField', 'watchlist', 'wl_id', "INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('watchlist_wl_id_seq')" ], + + // 1.28 + [ 'addPgIndex', 'recentchanges', 'rc_name_type_patrolled_timestamp', + '( rc_namespace, rc_type, rc_patrolled, rc_timestamp )' ], ]; } diff --git a/includes/installer/SqliteUpdater.php b/includes/installer/SqliteUpdater.php index 86dccd74bd..1c6e6eb9a8 100644 --- a/includes/installer/SqliteUpdater.php +++ b/includes/installer/SqliteUpdater.php @@ -152,6 +152,10 @@ class SqliteUpdater extends DatabaseUpdater { [ 'addIndex', 'categorylinks', 'cl_collation_ext', 'patch-add-cl_collation_ext_index.sql' ], [ 'doCollationUpdate' ], + + // 1.28 + [ 'addIndex', 'recentchanges', 'rc_name_type_patrolled_timestamp', + 'patch-add-rc_name_type_patrolled_timestamp_index.sql' ], ]; } diff --git a/maintenance/archives/patch-add-rc_name_type_patrolled_timestamp_index.sql b/maintenance/archives/patch-add-rc_name_type_patrolled_timestamp_index.sql new file mode 100644 index 0000000000..aa54e75330 --- /dev/null +++ b/maintenance/archives/patch-add-rc_name_type_patrolled_timestamp_index.sql @@ -0,0 +1,2 @@ +-- @since 1.28 +CREATE INDEX /*i*/rc_name_type_patrolled_timestamp ON /*_*/recentchanges (rc_namespace, rc_type, rc_patrolled, rc_timestamp); diff --git a/maintenance/mssql/tables.sql b/maintenance/mssql/tables.sql index 12cfed8e71..408f18f6ac 100644 --- a/maintenance/mssql/tables.sql +++ b/maintenance/mssql/tables.sql @@ -861,6 +861,7 @@ CREATE INDEX /*i*/new_name_timestamp ON /*_*/recentchanges (rc_new,rc_namespace, 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); +CREATE INDEX /*i*/rc_name_type_patrolled_timestamp ON /*_*/recentchanges (rc_namespace, rc_type, rc_patrolled, rc_timestamp); CREATE TABLE /*_*/watchlist ( diff --git a/maintenance/oracle/archives/patch-add-rc_name_type_patrolled_timestamp_index.sql b/maintenance/oracle/archives/patch-add-rc_name_type_patrolled_timestamp_index.sql new file mode 100644 index 0000000000..cd0d396846 --- /dev/null +++ b/maintenance/oracle/archives/patch-add-rc_name_type_patrolled_timestamp_index.sql @@ -0,0 +1,4 @@ +define mw_prefix='{$wgDBprefix}'; + +CREATE INDEX &mw_prefix.recentchanges_i08 ON &mw_prefix.recentchanges (rc_namespace, rc_type, rc_patrolled, rc_timestamp); + diff --git a/maintenance/oracle/tables.sql b/maintenance/oracle/tables.sql index 27c3030019..d9369c92cd 100644 --- a/maintenance/oracle/tables.sql +++ b/maintenance/oracle/tables.sql @@ -434,6 +434,7 @@ CREATE INDEX &mw_prefix.recentchanges_i04 ON &mw_prefix.recentchanges (rc_new,rc CREATE INDEX &mw_prefix.recentchanges_i05 ON &mw_prefix.recentchanges (rc_ip); CREATE INDEX &mw_prefix.recentchanges_i06 ON &mw_prefix.recentchanges (rc_namespace, rc_user_text); CREATE INDEX &mw_prefix.recentchanges_i07 ON &mw_prefix.recentchanges (rc_user_text, rc_timestamp); +CREATE INDEX &mw_prefix.recentchanges_i08 ON &mw_prefix.recentchanges (rc_namespace, rc_type, rc_patrolled, rc_timestamp); CREATE TABLE &mw_prefix.watchlist ( wl_id NUMBER NOT NULL, diff --git a/maintenance/postgres/tables.sql b/maintenance/postgres/tables.sql index 61cb19817e..95c87c0cd1 100644 --- a/maintenance/postgres/tables.sql +++ b/maintenance/postgres/tables.sql @@ -446,6 +446,7 @@ CREATE INDEX rc_namespace_title ON recentchanges (rc_namespace, rc_title); CREATE INDEX rc_cur_id ON recentchanges (rc_cur_id); CREATE INDEX new_name_timestamp ON recentchanges (rc_new, rc_namespace, rc_timestamp); CREATE INDEX rc_ip ON recentchanges (rc_ip); +CREATE INDEX rc_name_type_patrolled_timestamp ON recentchanges (rc_namespace, rc_type, rc_patrolled, rc_timestamp); CREATE SEQUENCE watchlist_wl_id_seq; diff --git a/maintenance/tables.sql b/maintenance/tables.sql index 89aeb9c91d..2375d81a9c 100644 --- a/maintenance/tables.sql +++ b/maintenance/tables.sql @@ -1136,6 +1136,7 @@ CREATE INDEX /*i*/new_name_timestamp ON /*_*/recentchanges (rc_new,rc_namespace, 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); +CREATE INDEX /*i*/rc_name_type_patrolled_timestamp ON /*_*/recentchanges (rc_namespace, rc_type, rc_patrolled, rc_timestamp); CREATE TABLE /*_*/watchlist ( -- 2.20.1