* Add an index to (rev_page,rev_user,rev_timestamp) for use in "All edits by a user...
authorAryeh Gregor <simetrical@users.mediawiki.org>
Wed, 29 Aug 2007 02:33:13 +0000 (02:33 +0000)
committerAryeh Gregor <simetrical@users.mediawiki.org>
Wed, 29 Aug 2007 02:33:13 +0000 (02:33 +0000)
* Bowlderism

includes/Article.php
maintenance/archives/patch-revision-user-page-index.sql [new file with mode: 0644]
maintenance/tables.sql
maintenance/updaters.inc

index 5bb5915..040a905 100644 (file)
@@ -2461,8 +2461,8 @@ class Article {
         *
         * @param Revision $rev
         *
-        * @todo This is a shitty interface function. Kill it and replace the
-        * other shitty functions like editUpdates and such so it's not needed
+        * @todo This is a lousy interface function. Kill it and replace the
+        * other cruddy functions like editUpdates and such so it's not needed
         * anymore.
         */
        function createUpdates( $rev ) {
diff --git a/maintenance/archives/patch-revision-user-page-index.sql b/maintenance/archives/patch-revision-user-page-index.sql
new file mode 100644 (file)
index 0000000..9058e4e
--- /dev/null
@@ -0,0 +1,5 @@
+-- New index on revision table to allow searches for all edits by a given user
+-- to a given page. Added 2007-08-28
+
+ALTER TABLE /*$wgDBprefix*/revision
+  ADD INDEX page_user_timestamp (rev_page,rev_user,rev_timestamp);
index 7477e5b..d23dc48 100644 (file)
@@ -282,7 +282,8 @@ CREATE TABLE /*$wgDBprefix*/revision (
   INDEX rev_timestamp (rev_timestamp),
   INDEX page_timestamp (rev_page,rev_timestamp),
   INDEX user_timestamp (rev_user,rev_timestamp),
-  INDEX usertext_timestamp (rev_user_text,rev_timestamp)
+  INDEX usertext_timestamp (rev_user_text,rev_timestamp),
+  INDEX page_user_timestamp (rev_page,rev_user,rev_timestamp)
 
 ) /*$wgDBTableOptions*/ MAX_ROWS=10000000 AVG_ROW_LENGTH=1024;
 -- In case tables are created as MyISAM, use row hints for MySQL <5.0 to avoid 4GB limit
index e8fd206..dfe9704 100644 (file)
@@ -1032,6 +1032,8 @@ function do_all_updates( $shared = false, $purge = true ) {
        
        do_oldimage_user_index(); flush ();
 
+       do_revision_page_user_index(); flush ();
+
        echo "Deleting old default messages (this may take a long time!)..."; flush();
        deleteDefaultMessages();
        echo "Done\n"; flush();
@@ -1130,6 +1132,17 @@ function do_restrictions_update() {
        
 }
 
+function do_revision_page_user_index() {
+       global $wgDatabase;
+       if( $wgDatabase->indexExists( 'revision', 'page_user_timestamp' ) ) {
+               echo "...page,user,timestamp key on revision already exists.\n";
+       } else {
+               echo "Adding page,user,timestamp key on revision table... ";
+               dbsource( archive("patch-revision-user-page-index.sql"), $wgDatabase );
+               echo "ok\n";
+       }
+}
+
 function
 pg_describe_table($table)
 {
@@ -1529,4 +1542,4 @@ function do_postgres_updates() {
        }
 
        return;
-}
\ No newline at end of file
+}