*Join on user table to get name. This allows for rc_user_text index use for pass 3
authorAaron Schulz <aaron@users.mediawiki.org>
Mon, 10 Dec 2007 03:17:24 +0000 (03:17 +0000)
committerAaron Schulz <aaron@users.mediawiki.org>
Mon, 10 Dec 2007 03:17:24 +0000 (03:17 +0000)
*Remove old unused vars

maintenance/rebuildrecentchanges.inc

index c7d01d0..125de55 100644 (file)
@@ -11,7 +11,6 @@ function rebuildRecentChangesTablePass1()
 {
        $fname = 'rebuildRecentChangesTablePass1';
        $dbw = wfGetDB( DB_MASTER );
-       extract( $dbw->tableNames( 'recentchanges', 'cur', 'old' ) );
 
        $dbw->delete( 'recentchanges', '*' );
 
@@ -103,7 +102,7 @@ function rebuildRecentChangesTablePass3()
                        
        $dbw = wfGetDB( DB_MASTER );
        
-       list ($recentchanges, $usergroups) = $dbw->tableNamesN( 'recentchanges', 'user_groups' );
+       list($recentchanges,$usergroups,$user) = $dbw->tableNamesN( 'recentchanges', 'user_groups', 'user' );
 
        $botgroups = $autopatrolgroups = array();
        foreach( $wgGroupPermissions as $group => $rights ) {
@@ -122,18 +121,18 @@ function rebuildRecentChangesTablePass3()
                print( "Flagging bot account edits...\n" );
 
                # Find all users that are bots
-               $sql = "SELECT DISTINCT ug_user FROM $usergroups " .
-                       "WHERE ug_group IN($botwhere)";
+               $sql = "SELECT DISTINCT user_name FROM $usergroups, $user " .
+                       "WHERE ug_group IN($botwhere) AND user_id = ug_user";
                $res = $dbw->query( $sql, DB_MASTER );
 
                while( $obj = $dbw->fetchObject( $res ) ) {
-                       $botusers[] = $obj->ug_user;
+                       $botusers[] = $dbw->strencode( $obj->user_name );
                }
                # Fill in the rc_bot field
                if( !empty($botusers) ) {
                        $botwhere = implode(',',$botusers);
                        $sql2 = "UPDATE $recentchanges SET rc_bot=1 " .
-                               "WHERE rc_user IN($botwhere)";
+                               "WHERE rc_user_text IN($botwhere)";
                        $dbw->query( $sql2 );
                }
        }
@@ -145,19 +144,19 @@ function rebuildRecentChangesTablePass3()
                print( "Flagging auto-patrolled edits...\n" );
 
                # Find all users in RC with autopatrol rights
-               $sql = "SELECT DISTINCT ug_user FROM $usergroups " .
-                       "WHERE ug_group IN($patrolwhere)";
+               $sql = "SELECT DISTINCT user_name FROM $usergroups, $user " .
+                       "WHERE ug_group IN($patrolwhere) AND user_id = ug_user";
                $res = $dbw->query( $sql, DB_MASTER );
 
                while( $obj = $dbw->fetchObject( $res ) ) {
-                       $patrolusers[] = $obj->ug_user;
+                       $patrolusers[] = $dbw->strencode( $obj->user_name );
                }
                
                # Fill in the rc_patrolled field
                if( !empty($patrolusers) ) {
                        $patrolwhere = implode(',',$patrolusers);
                        $sql2 = "UPDATE $recentchanges SET rc_patrolled=1 " .
-                               "WHERE rc_user IN($patrolwhere)";
+                               "WHERE rc_user_text IN($patrolwhere)";
                        $dbw->query( $sql2 );
                }
        }