# 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" );
# 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" );
$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" );
__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();
__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 );
$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;
}
function convertOptionBatch( $res, $dbw ) {
$id = null;
- while ($row = $dbw->fetchObject( $res ) ) {
+ foreach ( $res as $row ) {
$this->mConversionCount++;
$u = User::newFromRow( $row );
$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;
$dbw = wfGetDB( DB_MASTER );
- while ( $row = $dbr->fetchObject( $res ) ) {
+ foreach ( $res as $row ) {
if ( function_exists( 'wfWaitForSlaves' ) ) {
wfWaitForSlaves( 5 );
}
$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 );
# 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" );
$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" );
# 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 );
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" );
),
__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();
$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" );
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" );
$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 );
$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 );
// 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__ );
)
);
- while ( $row = $this->dbr->fetchObject( $res ) )
+ foreach ( $res as $row )
$this->namespaces[] = $row->page_namespace;
}
$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() );
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 ),
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 );
$result = $this->db->query( $sql, __METHOD__ );
$set = array();
- while( $row = $this->db->fetchObject( $result ) ) {
+ foreach( $result as $row ) {
$set[] = $row;
}
$this->db->freeResult( $result );
$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
$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" );
}
}
# 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 );
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 ) . ')';
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,
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
$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 );
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__ );
}
"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 ) {
$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
"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
"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 );
}
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();
$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 );
$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 );
$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
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 {
$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 ) );
}
# 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 ---" );