From 12dabfbc1091f6eb95196dad9795429a07bbb668 Mon Sep 17 00:00:00 2001 From: Jure Kajzer Date: Fri, 11 Nov 2011 14:28:44 +0000 Subject: [PATCH] * applyed the patch from bug 26393 (please comment on the bug page) --- includes/installer/MysqlUpdater.php | 3 ++- includes/installer/OracleUpdater.php | 1 + includes/installer/SqliteUpdater.php | 4 +++- includes/specials/SpecialShortpages.php | 12 ++---------- .../archives/patch-page_redirect_namespace_len.sql | 6 ++++++ .../archives/patch-page_redirect_namespace_len.sql | 4 ++++ maintenance/oracle/tables.sql | 1 + .../archives/patch-page_redirect_namespace_len.sql | 7 +++++++ maintenance/tables.sql | 2 +- 9 files changed, 27 insertions(+), 13 deletions(-) create mode 100644 maintenance/archives/patch-page_redirect_namespace_len.sql create mode 100644 maintenance/oracle/archives/patch-page_redirect_namespace_len.sql create mode 100644 maintenance/sqlite/archives/patch-page_redirect_namespace_len.sql diff --git a/includes/installer/MysqlUpdater.php b/includes/installer/MysqlUpdater.php index c873da4c48..0da2ab0417 100644 --- a/includes/installer/MysqlUpdater.php +++ b/includes/installer/MysqlUpdater.php @@ -189,7 +189,8 @@ class MysqlUpdater extends DatabaseUpdater { array( 'doMigrateUserOptions' ), array( 'dropField', 'user', 'user_options', 'patch-drop-user_options.sql' ), array( 'addField', 'revision', 'rev_sha1', 'patch-rev_sha1.sql' ), - array( 'addField', 'archive', 'ar_sha1', 'patch-ar_sha1.sql' ) + array( 'addField', 'archive', 'ar_sha1', 'patch-ar_sha1.sql' ), + array( 'addIndex', 'page', 'page_redirect_namespace_len', 'patch-page_redirect_namespace_len.sql' ) ); } diff --git a/includes/installer/OracleUpdater.php b/includes/installer/OracleUpdater.php index 64188cb844..4898ca9d3c 100644 --- a/includes/installer/OracleUpdater.php +++ b/includes/installer/OracleUpdater.php @@ -47,6 +47,7 @@ class OracleUpdater extends DatabaseUpdater { array( 'addField', 'revision', 'rev_sha1', 'patch-rev_sha1_field.sql' ), array( 'addField', 'archive', 'ar_sha1', 'patch-ar_sha1_field.sql' ), array( 'doRemoveNotNullEmptyDefaults2' ), + array( 'addIndex', 'page', 'i03', 'patch-page_redirect_namespace_len.sql' ), // till 2.0 i guess array( 'doRebuildDuplicateFunction' ), diff --git a/includes/installer/SqliteUpdater.php b/includes/installer/SqliteUpdater.php index 509bf62a9e..2dc1505bcb 100644 --- a/includes/installer/SqliteUpdater.php +++ b/includes/installer/SqliteUpdater.php @@ -67,7 +67,9 @@ class SqliteUpdater extends DatabaseUpdater { array( 'doMigrateUserOptions' ), array( 'dropField', 'user', 'user_options', 'patch-drop-user_options.sql' ), array( 'addField', 'revision', 'rev_sha1', 'patch-rev_sha1.sql' ), - array( 'addField', 'archive', 'ar_sha1', 'patch-ar_sha1.sql' ) + array( 'addField', 'archive', 'ar_sha1', 'patch-ar_sha1.sql' ), + array( 'addIndex', 'page', 'page_redirect_namespace_len', 'patch-page_redirect_namespace_len.sql' ) + ); } diff --git a/includes/specials/SpecialShortpages.php b/includes/specials/SpecialShortpages.php index eee036fd89..1e84e45e19 100644 --- a/includes/specials/SpecialShortpages.php +++ b/includes/specials/SpecialShortpages.php @@ -33,14 +33,6 @@ class ShortPagesPage extends QueryPage { parent::__construct( $name ); } - // inexpensive? - /** - * This query is indexed as of 1.5 - */ - function isExpensive() { - return true; - } - function isSyndicated() { return false; } @@ -51,9 +43,9 @@ class ShortPagesPage extends QueryPage { 'fields' => array ( 'page_namespace AS namespace', 'page_title AS title', 'page_len AS value' ), - 'conds' => array ( 'page_namespace' => MWNamespace::getContentNamespaces(), + 'conds' => array ( 'page_namespace' => NS_MAIN, 'page_is_redirect' => 0 ), - 'options' => array ( 'USE INDEX' => 'page_len' ) + 'options' => array ( 'USE INDEX' => 'page_redirect_namespaces_len' ) ); } diff --git a/maintenance/archives/patch-page_redirect_namespace_len.sql b/maintenance/archives/patch-page_redirect_namespace_len.sql new file mode 100644 index 0000000000..392945fb41 --- /dev/null +++ b/maintenance/archives/patch-page_redirect_namespace_len.sql @@ -0,0 +1,6 @@ +-- +-- Add the page_redirect_namespace_len index +-- + +CREATE INDEX /*i*/page_redirect_namespace_len ON /*_*/page (page_is_redirect, page_namespace, page_len); + diff --git a/maintenance/oracle/archives/patch-page_redirect_namespace_len.sql b/maintenance/oracle/archives/patch-page_redirect_namespace_len.sql new file mode 100644 index 0000000000..1f8b9d9a1c --- /dev/null +++ b/maintenance/oracle/archives/patch-page_redirect_namespace_len.sql @@ -0,0 +1,4 @@ +define mw_prefix='{$wgDBprefix}'; + +CREATE INDEX &mw_prefix.page_i03 ON &mw_prefix.page (page_is_redirect, page_namespace, page_len); + diff --git a/maintenance/oracle/tables.sql b/maintenance/oracle/tables.sql index b406926204..5572b2056f 100644 --- a/maintenance/oracle/tables.sql +++ b/maintenance/oracle/tables.sql @@ -79,6 +79,7 @@ ALTER TABLE &mw_prefix.page ADD CONSTRAINT &mw_prefix.page_pk PRIMARY KEY (page_ CREATE UNIQUE INDEX &mw_prefix.page_u01 ON &mw_prefix.page (page_namespace,page_title); CREATE INDEX &mw_prefix.page_i01 ON &mw_prefix.page (page_random); CREATE INDEX &mw_prefix.page_i02 ON &mw_prefix.page (page_len); +CREATE INDEX &mw_prefix.page_i03 ON &mw_prefix.page (page_is_redirect, page_namespace, page_len); -- Create a dummy page to satisfy fk contraints especially with revisions INSERT INTO &mw_prefix.page diff --git a/maintenance/sqlite/archives/patch-page_redirect_namespace_len.sql b/maintenance/sqlite/archives/patch-page_redirect_namespace_len.sql new file mode 100644 index 0000000000..d9eedadd9e --- /dev/null +++ b/maintenance/sqlite/archives/patch-page_redirect_namespace_len.sql @@ -0,0 +1,7 @@ +-- +-- Add the page_redirect_namespace_len index +-- + +CREATE INDEX /*i*/page_redirect_namespace_len ON /*_*/page (page_is_redirect, page_namespace, page_len); + + diff --git a/maintenance/tables.sql b/maintenance/tables.sql index 69937c1616..865299372c 100644 --- a/maintenance/tables.sql +++ b/maintenance/tables.sql @@ -265,7 +265,7 @@ CREATE TABLE /*_*/page ( CREATE UNIQUE INDEX /*i*/name_title ON /*_*/page (page_namespace,page_title); CREATE INDEX /*i*/page_random ON /*_*/page (page_random); CREATE INDEX /*i*/page_len ON /*_*/page (page_len); - +CREATE INDEX /*i*/page_len_redirect_namespace ON /*_*/page (page_len, page_is_redirect, page_namespace); -- -- Every edit of a page creates also a revision row. -- 2.20.1