* applyed the patch from bug 26393 (please comment on the bug page)
authorJure Kajzer <freakolowsky@users.mediawiki.org>
Fri, 11 Nov 2011 14:28:44 +0000 (14:28 +0000)
committerJure Kajzer <freakolowsky@users.mediawiki.org>
Fri, 11 Nov 2011 14:28:44 +0000 (14:28 +0000)
includes/installer/MysqlUpdater.php
includes/installer/OracleUpdater.php
includes/installer/SqliteUpdater.php
includes/specials/SpecialShortpages.php
maintenance/archives/patch-page_redirect_namespace_len.sql [new file with mode: 0644]
maintenance/oracle/archives/patch-page_redirect_namespace_len.sql [new file with mode: 0644]
maintenance/oracle/tables.sql
maintenance/sqlite/archives/patch-page_redirect_namespace_len.sql [new file with mode: 0644]
maintenance/tables.sql

index c873da4..0da2ab0 100644 (file)
@@ -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' )
                );
        }
 
index 64188cb..4898ca9 100644 (file)
@@ -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' ),
index 509bf62..2dc1505 100644 (file)
@@ -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' )
+
                );
        }
 
index eee036f..1e84e45 100644 (file)
@@ -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 (file)
index 0000000..392945f
--- /dev/null
@@ -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 (file)
index 0000000..1f8b9d9
--- /dev/null
@@ -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);
+
index b406926..5572b20 100644 (file)
@@ -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 (file)
index 0000000..d9eedad
--- /dev/null
@@ -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);
+
+
index 69937c1..8652993 100644 (file)
@@ -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.