* batch change for "while ( $row = $db->fetchObject( $res ) )" and similar to "foreac...
authorAlexandre Emsenhuber <ialex@users.mediawiki.org>
Mon, 17 Aug 2009 21:15:31 +0000 (21:15 +0000)
committerAlexandre Emsenhuber <ialex@users.mediawiki.org>
Mon, 17 Aug 2009 21:15:31 +0000 (21:15 +0000)
* identation fix in nukeNS.php

31 files changed:
maintenance/Maintenance.php
maintenance/attachLatest.php
maintenance/checkUsernames.php
maintenance/clear_interwiki_cache.php
maintenance/convertUserOptions.php
maintenance/deleteArchivedFiles.php
maintenance/deleteDefaultMessages.php
maintenance/deleteImageMemcached.php
maintenance/deleteOldRevisions.php
maintenance/deleteOrphanedRevisions.php
maintenance/dumpLinks.php
maintenance/dumpSisterSites.php
maintenance/fixSlaveDesync.php
maintenance/fixTimestamps.php
maintenance/fixUserRegistration.php
maintenance/generateSitemap.php
maintenance/initEditCount.php
maintenance/namespaceDupes.php
maintenance/nukeNS.php
maintenance/nukePage.php
maintenance/orphans.php
maintenance/populateLogSearch.php
maintenance/populateLogUsertext.php
maintenance/rebuildFileCache.php
maintenance/rebuildrecentchanges.php
maintenance/rebuildtextindex.php
maintenance/refreshLinks.php
maintenance/removeUnusedAccounts.php
maintenance/sql.php
maintenance/updateRestrictions.php
maintenance/updateSearchIndex.php

index 1d2d115..9ef2ef7 100644 (file)
@@ -671,7 +671,7 @@ abstract class Maintenance {
                # Get "active" text records from the revisions table
                $this->output( "Searching for active text records in revisions table..." );
                $res = $dbw->query( "SELECT DISTINCT rev_text_id FROM $tbl_rev" );
-               while( $row = $dbw->fetchObject( $res ) ) {
+               foreach( $res as $row ) {
                        $cur[] = $row->rev_text_id;
                }
                $this->output( "done.\n" );
@@ -679,7 +679,7 @@ abstract class Maintenance {
                # Get "active" text records from the archive table
                $this->output( "Searching for active text records in archive table..." );
                $res = $dbw->query( "SELECT DISTINCT ar_text_id FROM $tbl_arc" );
-               while( $row = $dbw->fetchObject( $res ) ) {
+               foreach( $res as $row ) {
                        $cur[] = $row->ar_text_id;
                }
                $this->output( "done.\n" );
@@ -689,7 +689,7 @@ abstract class Maintenance {
                $set = implode( ', ', $cur );
                $res = $dbw->query( "SELECT old_id FROM $tbl_txt WHERE old_id NOT IN ( $set )" );
                $old = array();
-               while( $row = $dbw->fetchObject( $res ) ) {
+               foreach( $res as $row ) {
                        $old[] = $row->old_id;
                }
                $this->output( "done.\n" );
index fa07649..67f3088 100644 (file)
@@ -43,7 +43,7 @@ class AttachLatest extends Maintenance {
                        __METHOD__ );
 
                $n = 0;
-               while( $row = $dbw->fetchObject( $result ) ) {
+               foreach( $result as $row ) {
                        $pageId = intval( $row->page_id );
                        $title = Title::makeTitle( $row->page_namespace, $row->page_title );
                        $name = $title->getPrefixedText();
index e1754d3..e082d98 100644 (file)
@@ -41,7 +41,7 @@ class CheckUsernames extends Maintenance {
                        __METHOD__
                );
 
-               while ( $row = $dbr->fetchObject( $res ) ) {
+               foreach ( $res as $row ) {
                        if ( ! User::isValidUserName( $row->user_name ) ) {
                                $this->error( sprintf( "%s: %6d: '%s'\n", wfWikiID(), $row->user_id, $row->user_name ) );
                                wfDebugLog( 'checkUsernames', $out );
index 3d1ea0e..a3510a0 100644 (file)
@@ -35,7 +35,7 @@ class ClearInterwikiCache extends Maintenance {
                $dbr = wfGetDB( DB_SLAVE );
                $res = $dbr->select( 'interwiki', array( 'iw_prefix' ), false );
                $prefixes = array();
-               while ( $row = $dbr->fetchObject( $res ) ) {
+               foreach ( $res as $row ) {
                        $prefixes[] = $row->iw_prefix;
                }
 
index 1d58919..657a82c 100644 (file)
@@ -55,7 +55,7 @@ class ConvertUserOptions extends Maintenance {
 
        function convertOptionBatch( $res, $dbw ) {
                $id = null;
-               while ($row = $dbw->fetchObject( $res ) ) {
+               foreach ( $res as $row ) {
                        $this->mConversionCount++;
        
                        $u = User::newFromRow( $row );
index 678af5e..e83edff 100644 (file)
@@ -50,7 +50,7 @@ class DeleteArchivedFiles extends Maintenance {
                $this->output( "Searching for and deleting archived files...\n" );
                $res = $dbw->query( "SELECT fa_id,fa_storage_group,fa_storage_key FROM $tbl_arch" );
                $count = 0;
-               while( $row = $dbw->fetchObject( $res ) ) {
+               foreach( $res as $row ) {
                        $key = $row->fa_storage_key;
                        $group = $row->fa_storage_group;
                        $id = $row->fa_id;
index 65216c1..3f0e1b1 100644 (file)
@@ -54,7 +54,7 @@ class DeleteDefaultMessages extends Maintenance {
 
                $dbw = wfGetDB( DB_MASTER );
 
-               while ( $row = $dbr->fetchObject( $res ) ) {
+               foreach ( $res as $row ) {
                        if ( function_exists( 'wfWaitForSlaves' ) ) {
                                wfWaitForSlaves( 5 );
                        }
index d33c9af..9becddb 100644 (file)
@@ -52,7 +52,7 @@ class DeleteImageCache extends Maintenance {
                $i = 0;
                $total = $this->getImageCount();
 
-               while ( $row = $dbr->fetchObject( $res ) ) {
+               foreach ( $res as $row ) {
                        if ($i % $this->report == 0)
                                $this->output( sprintf("%s: %13s done (%s)\n", wfWikiID(), "$i/$total", wfPercent( $i / $total * 100 ) ) );
                        $md5 = md5( $row->img_name );
index 05d8532..917f1ba 100644 (file)
@@ -62,7 +62,7 @@ class DeleteOldRevisions extends Maintenance {
                # Get "active" revisions from the page table
                $this->output( "Searching for active revisions..." );
                $res = $dbw->query( "SELECT page_latest FROM $tbl_pag{$pageIdClause}" );
-               while( $row = $dbw->fetchObject( $res ) ) {
+               foreach( $res as $row ) {
                        $cur[] = $row->page_latest;
                }
                $this->output( "done.\n" );
@@ -71,7 +71,7 @@ class DeleteOldRevisions extends Maintenance {
                $this->output( "Searching for inactive revisions..." );
                $set = implode( ', ', $cur );
                $res = $dbw->query( "SELECT rev_id FROM $tbl_rev WHERE rev_id NOT IN ( $set ){$revPageClause}" );
-               while( $row = $dbw->fetchObject( $res ) ) {
+               foreach( $res as $row ) {
                        $old[] = $row->rev_id;
                }
                $this->output( "done.\n" );
index 603408c..45e42a2 100644 (file)
@@ -49,7 +49,7 @@ class DeleteOrphanedRevisions extends Maintenance {
        
                # Stash 'em all up for deletion (if needed)
                $revisions = array();
-               while( $row = $dbw->fetchObject( $res ) )
+               foreach( $res as $row )
                        $revisions[] = $row->rev_id;
                $dbw->freeResult( $res );
                $count = count( $revisions );
index 1cb70d0..529cd1a 100644 (file)
@@ -51,7 +51,7 @@ class DumpLinks extends Maintenance {
                        array( 'ORDER BY' => 'page_id' ) );
        
                $lastPage = null;
-               while( $row = $dbr->fetchObject( $result ) ) {
+               foreach( $result as $row ) {
                        if( $lastPage != $row->page_id ) {
                                if( isset( $lastPage ) ) {
                                        $this->output( "\n" );
index 9e8f637..d9fd28a 100644 (file)
@@ -42,7 +42,7 @@ class DumpSisterSites extends Maintenance {
                        ),
                        __METHOD__ );
 
-               while( $row = $dbr->fetchObject( $result ) ) {
+               foreach( $result as $row ) {
                        $title = Title::makeTitle( $row->page_namespace, $row->page_title );
                        $url = $title->getFullUrl();
                        $text = $title->getPrefixedText();
index e7fecc8..c585beb 100644 (file)
@@ -62,7 +62,7 @@ class FixSlaveDesync extends Maintenance {
                $masterIDs = array();
                $res = $dbw->select( 'page', array( 'page_id', 'page_latest' ), array( 'page_id<6054123' ), __METHOD__ );
                $this->output( "Number of pages: " . $dbw->numRows( $res ) . "\n" );
-               while ( $row = $dbw->fetchObject( $res ) ) {
+               foreach ( $res as $row ) {
                        $masterIDs[$row->page_id] = $row->page_latest;
                        if ( !( ++$n % 10000 ) ) {
                                $this->output( "$n\r" );
@@ -75,7 +75,7 @@ class FixSlaveDesync extends Maintenance {
                foreach ( $slaveIndexes as $i ) {
                        $db = wfGetDB( $i );
                        $res = $db->select( 'page', array( 'page_id', 'page_latest' ), array( 'page_id<6054123' ), __METHOD__ );
-                       while ( $row = $db->fetchObject( $res ) ) {
+                       foreach ( $res as $row ) {
                                if ( isset( $masterIDs[$row->page_id] ) && $masterIDs[$row->page_id] != $row->page_latest ) {
                                        $desync[$row->page_id] = true;
                                        $this->output( $row->page_id . "\t" );
@@ -128,14 +128,14 @@ class FixSlaveDesync extends Maintenance {
                $res = $dbw->select( 'revision', array( 'rev_id' ), array( 'rev_page' => $pageID ), 
                        __METHOD__, 'FOR UPDATE' );
                $masterIDs = array();
-               while ( $row = $dbw->fetchObject( $res ) ) {
+               foreach ( $res as $row ) {
                        $masterIDs[] = $row->rev_id;
                }
                $dbw->freeResult( $res );
 
                $res = $db->select( 'revision', array( 'rev_id' ), array( 'rev_page' => $pageID ), __METHOD__ );
                $slaveIDs = array();
-               while ( $row = $db->fetchObject( $res ) ) {
+               foreach ( $res as $row ) {
                        $slaveIDs[] = $row->rev_id;
                }
                $db->freeResult( $res );
index 8d89e09..2cbec44 100644 (file)
@@ -69,7 +69,7 @@ class FixTimestamps extends Maintenance {
                $badRevs = array();
                $numGoodRevs = 0;
        
-               while ( $row = $dbw->fetchObject( $res ) ) {
+               foreach ( $res as $row ) {
                        $timestamp = wfTimestamp( TS_UNIX, $row->rev_timestamp );
                        $delta = $timestamp - $lastNormal;
                        $sign = $delta == 0 ? 0 : $delta / abs( $delta );
index 46c9fae..d330535 100644 (file)
@@ -35,7 +35,7 @@ class FixUserRegistration extends Maintenance {
 
                // Get user IDs which need fixing
                $res = $dbr->select( 'user', 'user_id', 'user_registration IS NULL', __METHOD__ );
-               while ( $row = $dbr->fetchObject( $res ) ) {
+               foreach ( $res as $row ) {
                        $id = $row->user_id;
                        // Get first edit time
                        $timestamp = $dbr->selectField( 'revision', 'MIN(rev_timestamp)', array( 'rev_user' => $id ), __METHOD__ );
index 67e463b..c59ed4c 100644 (file)
@@ -214,7 +214,7 @@ class GenerateSitemap extends Maintenance {
                        )
                );
 
-               while ( $row = $this->dbr->fetchObject( $res ) )
+               foreach ( $res as $row )
                        $this->namespaces[] = $row->page_namespace;
        }
 
@@ -281,7 +281,7 @@ class GenerateSitemap extends Maintenance {
 
                        $fns = $wgContLang->getFormattedNsText( $namespace );
                        $this->output( "$namespace ($fns)" );
-                       while ( $row = $this->dbr->fetchObject( $res ) ) {
+                       foreach ( $res as $row ) {
                                if ( $i++ === 0 || $i === $this->url_limit + 1 || $length + $this->limit[1] + $this->limit[2] > $this->size_limit ) {
                                        if ( $this->file !== false ) {
                                                $this->write( $this->file, $this->closeFile() );
index 3170d31..b730164 100644 (file)
@@ -73,7 +73,7 @@ in $wgDBservers, usually indicating a replication environment.' );
                                        GROUP BY user_id",
                                        __METHOD__ );
 
-                               while( $row = $dbr->fetchObject( $result ) ) {
+                               foreach( $result as $row ) {
                                        $dbw->update( 'user',
                                                array( 'user_editcount' => $row->user_editcount ),
                                                array( 'user_id' => $row->user_id ),
index e70dea4..d373b26 100644 (file)
@@ -137,7 +137,7 @@ class NamespaceConflictChecker extends Maintenance {
        private function getInterwikiList() {
                $result = $this->db->select( 'interwiki', array( 'iw_prefix' ) );
                $prefixes = array();
-               while( $row = $this->db->fetchObject( $result ) ) {
+               foreach( $result as $row ) {
                        $prefixes[] = $row->iw_prefix;
                }
                $this->db->freeResult( $result );
@@ -216,7 +216,7 @@ class NamespaceConflictChecker extends Maintenance {
                $result = $this->db->query( $sql, __METHOD__ );
 
                $set = array();
-               while( $row = $this->db->fetchObject( $result ) ) {
+               foreach( $result as $row ) {
                        $set[] = $row;
                }
                $this->db->freeResult( $result );
index b184938..81545b1 100644 (file)
@@ -55,24 +55,24 @@ class NukeNS extends Maintenance {
 
                $n_deleted = 0;
 
-               while( $row = $dbw->fetchObject( $res ) ) {
+               foreach( $res as $row ) {
                        //echo "$ns_name:".$row->page_title, "\n";
-                       $title = Title::newFromText($row->page_title, $ns);
+                       $title = Title::makeTitle( $ns, $row->page_title );
                        $id   = $title->getArticleID();
 
                        // Get corresponding revisions
                        $res2 = $dbw->query( "SELECT rev_id FROM $tbl_rev WHERE rev_page = $id" );
                        $revs = array();
 
-                       while( $row2 = $dbw->fetchObject( $res2 ) ) {
+                       foreach( $res2 as $row2 ) {
                                $revs[] = $row2->rev_id;
                        }
                        $count = count( $revs );
 
                        //skip anything that looks modified (i.e. multiple revs)
-                       if (($count == 1)) {
+                       if ( $count == 1 ) {
                                #echo $title->getPrefixedText(), "\t", $count, "\n";
-                               $this->output( "delete: ", $title->getPrefixedText(), "\n" );
+                               $this->output( "delete: " . $title->getPrefixedText() . "\n" );
 
                                //as much as I hate to cut & paste this, it's a little different, and
                                //I already have the id & revs
@@ -86,23 +86,25 @@ class NukeNS extends Maintenance {
                                        $n_deleted ++;
                                }
                        } else {
-                         $this->output( "skip: ", $title->getPrefixedText(), "\n" );
+                         $this->output( "skip: " . $title->getPrefixedText() . "\n" );
                        }
                }
                $dbw->commit();
 
-               if ($n_deleted > 0) {
-               #update statistics - better to decrement existing count, or just count
-               #the page table?
-               $pages = $dbw->selectField('site_stats', 'ss_total_pages');
-               $pages -= $n_deleted;
-               $dbw->update( 'site_stats', 
-                         array('ss_total_pages' => $pages ), 
-                         array( 'ss_row_id' => 1),
-                         __METHOD__ );
+               if ( $n_deleted > 0 ) {
+                       #update statistics - better to decrement existing count, or just count
+                       #the page table?
+                       $pages = $dbw->selectField( 'site_stats', 'ss_total_pages' );
+                       $pages -= $n_deleted;
+                       $dbw->update(
+                               'site_stats', 
+                               array( 'ss_total_pages' => $pages ), 
+                               array( 'ss_row_id' => 1 ),
+                               __METHOD__
+                       );
                }
        
-               if (!$delete) {
+               if ( !$delete ) {
                        $this->output( "To update the database, run the script with the --delete option.\n" );
                }
        }
index cb0d3aa..1cf3c79 100644 (file)
@@ -56,7 +56,7 @@ class NukePage extends Maintenance {
                        # Get corresponding revisions
                        $this->output( "Searching for revisions..." );
                        $res = $dbw->query( "SELECT rev_id FROM $tbl_rev WHERE rev_page = $id" );
-                       while( $row = $dbw->fetchObject( $res ) ) {
+                       foreach( $res as $row ) {
                                $revs[] = $row->rev_id;
                        }
                        $count = count( $revs );
index cbcf228..67403e4 100644 (file)
@@ -84,7 +84,7 @@ class Orphans extends Maintenance {
                        global $wgContLang;
                        $this->output( "$orphans orphan revisions...\n" );
                        $this->output( sprintf( "%10s %10s %14s %20s %s\n", 'rev_id', 'rev_page', 'rev_timestamp', 'rev_user_text', 'rev_comment' ) );
-                       while( $row = $dbw->fetchObject( $result ) ) {
+                       foreach( $result as $row ) {
                                $comment = ( $row->rev_comment == '' )
                                        ? ''
                                        : '(' . $wgContLang->truncate( $row->rev_comment, 40 ) . ')';
@@ -136,7 +136,7 @@ class Orphans extends Maintenance {
                        global $wgContLang;
                        $this->output( "$widows childless pages...\n" );
                        $this->output( sprintf( "%10s %11s %2s %s\n", 'page_id', 'page_latest', 'ns', 'page_title' ) );
-                       while( $row = $dbw->fetchObject( $result ) ) {
+                       foreach( $result as $row ) {
                                printf( "%10d %11d %2d %s\n",
                                        $row->page_id,
                                        $row->page_latest,
@@ -178,7 +178,7 @@ class Orphans extends Maintenance {
                        FROM $page LEFT OUTER JOIN $revision ON page_latest=rev_id
                ");
                $found = 0;
-               while( $row = $dbw->fetchObject( $result ) ) {
+               foreach( $result as $row ) {
                        $result2 = $dbw->query( "
                                SELECT MAX(rev_timestamp) as max_timestamp
                                FROM $revision
index 0e53e1e..390a57a 100644 (file)
@@ -53,7 +53,7 @@ class PopulateLogSearch extends Maintenance {
                        $cond = "log_id BETWEEN $blockStart AND $blockEnd";
                        $res = $db->select( 'logging', '*', $cond, __FUNCTION__ );
                        $batch = array();
-                       while( $row = $db->fetchObject( $res ) ) {
+                       foreach( $res as $row ) {
                                // RevisionDelete logs - revisions
                                if( LogEventsList::typeAction( $row, array('delete','suppress'), 'revision' ) ) {
                                        $params = LogPage::extractParams( $row->log_params );
index ff5b1fc..a491b2b 100644 (file)
@@ -52,7 +52,7 @@ class PopulateLogUsertext extends Maintenance {
                                array('log_id','user_name'), $cond, __METHOD__ );
                        $batch = array();
                        $db->begin();
-                       while( $row = $db->fetchObject( $res ) ) {
+                       foreach( $res as $row ) {
                                $db->update( 'logging', array('log_user_text' => $row->user_name),
                                        array('log_id' => $row->log_id), __METHOD__ );
                        }
index 0d3596a..f069b2f 100644 (file)
@@ -70,7 +70,7 @@ class RebuildFileCache extends Maintenance {
                                        "page_id BETWEEN $blockStart AND $blockEnd" ),
                                array('ORDER BY' => 'page_id ASC','USE INDEX' => 'PRIMARY')
                        );
-                       while( $row = $dbr->fetchObject( $res ) ) {
+                       foreach( $res as $row ) {
                                $rebuilt = false;
                                $wgTitle = Title::makeTitleSafe( $row->page_namespace, $row->page_title );
                                if( null == $wgTitle ) {
index 54cdbcc..be707a7 100644 (file)
@@ -106,7 +106,7 @@ class RebuildRecentchanges extends Maintenance {
        
                $lastCurId = 0;
                $lastOldId = 0;
-               while ( $obj = $dbw->fetchObject( $res ) ) {
+               foreach ( $res as $obj ) {
                        $new = 0;
                        if( $obj->rc_cur_id != $lastCurId ) {
                                # Switch! Look up the previous last edit, if any
@@ -233,7 +233,7 @@ class RebuildRecentchanges extends Maintenance {
                                "WHERE ug_group IN($botwhere) AND user_id = ug_user";
                        $res = $dbw->query( $sql, DB_MASTER );
        
-                       while( $obj = $dbw->fetchObject( $res ) ) {
+                       foreach( $res as $obj ) {
                                $botusers[] = $dbw->addQuotes( $obj->user_name );
                        }
                        # Fill in the rc_bot field
@@ -257,7 +257,7 @@ class RebuildRecentchanges extends Maintenance {
                                "WHERE ug_group IN($patrolwhere) AND user_id = ug_user";
                        $res = $dbw->query( $sql, DB_MASTER );
        
-                       while( $obj = $dbw->fetchObject( $res ) ) {
+                       foreach( $res as $obj ) {
                                $patrolusers[] = $dbw->addQuotes( $obj->user_name );
                        }
        
index e0eb4c4..4815e7a 100644 (file)
@@ -95,7 +95,7 @@ class RebuildTextIndex extends Maintenance {
                                           AND rev_text_id=old_id";
                        $res = $database->query($sql, "rebuildTextIndex" );
        
-                       while( $s = $database->fetchObject($res) ) {
+                       foreach( $res as $s ) {
                                $revtext = Revision::getRevisionText( $s );
                                $u = new SearchUpdate( $s->page_id, $s->page_title, $revtext );
                                $u->doUpdate();
index 7f1a2c1..c43d8c6 100644 (file)
@@ -91,7 +91,7 @@ class RefreshLinks extends Maintenance {
                        $num = $dbr->numRows( $res );
                        $this->output( "Refreshing $num old redirects from $start...\n" );
 
-                       while( $row = $dbr->fetchObject( $res ) ) {
+                       foreach( $res as $row ) {
                                if ( !( ++$i % $reportingInterval ) ) {
                                        $this->output( "$i\n" );
                                        wfWaitForSlaves( $maxLag );
@@ -111,7 +111,7 @@ class RefreshLinks extends Maintenance {
                        $this->output( "$num new articles...\n" );
        
                        $i = 0;
-                       while ( $row = $dbr->fetchObject( $res ) ) {
+                       foreach ( $res as $row ) {
                                if ( !( ++$i % $reportingInterval ) ) {
                                        $this->output( "$i\n" );
                                        wfWaitForSlaves( $maxLag );
index 642e8e0..a417eba 100644 (file)
@@ -51,7 +51,7 @@ class RemoveUnusedAccounts extends Maintenance {
                        $this->error( "Please put a valid positive integer on the --ignore-touched parameter.", true );
                }
                $touchedSeconds = 86400 * $touched;
-               while( $row = $dbr->fetchObject( $res ) ) {
+               foreach( $res as $row ) {
                        # Check the account, but ignore it if it's within a $excludedGroups group or if it's touched within the $touchedSeconds seconds.
                        $instance = User::newFromId( $row->user_id );
                        if( count( array_intersect( $instance->getEffectiveGroups(), $excludedGroups ) ) == 0
index dda3b37..b9c8b15 100644 (file)
@@ -61,7 +61,7 @@ class MwSql extends Maintenance {
                if ( !$res ) {
                        // Do nothing
                } elseif ( is_object( $res ) && $res->numRows() ) {
-                       while ( $row = $res->fetchObject() ) {
+                       foreach ( $res as $row ) {
                                $this->output( print_r( $row, true ) );
                        }
                } else {
index 7068493..80e98fd 100644 (file)
@@ -54,7 +54,7 @@ class UpdateRestrictions extends Maintenance {
                        $cond = "page_id BETWEEN $blockStart AND $blockEnd AND page_restrictions !=''";
                        $res = $db->select( 'page', array('page_id','page_namespace','page_restrictions'), $cond, __METHOD__ );
                        $batch = array();
-                       while( $row = $db->fetchObject( $res ) ) {
+                       foreach( $res as $row ) {
                                $oldRestrictions = array();
                                foreach( explode( ':', trim( $row->page_restrictions ) ) as $restrict ) {
                                        $temp = explode( '=', trim( $restrict ) );
index 6172fa4..0adfd15 100644 (file)
@@ -99,7 +99,7 @@ class UpdateSearchIndex extends Maintenance {
                }
 
                # Loop through the results and do a search update
-               while ( $row = $dbw->fetchObject( $res ) ) {
+               foreach ( $res as $row ) {
                        # Allow reads to be processed
                        if ( $maxLockTime && time() > $lockTime + $maxLockTime ) {
                                $this->output( "    --- Relocking ---" );