r60981 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r60980‎ | r60981 | r60982 >
Date:19:47, 12 January 2010
Author:aaron
Status:ok
Tags:
Comment:
Combined some purgeExpiredConfigurations() queries
Modified paths:
  • /trunk/extensions/FlaggedRevs/FlaggedRevs.class.php (modified) (history)

Diff [purge]

Index: trunk/extensions/FlaggedRevs/FlaggedRevs.class.php
@@ -1240,15 +1240,16 @@
12411241 array( 'fpc_page_id', 'fpc_select' ),
12421242 array( 'fpc_expiry < ' . $dbw->addQuotes( $dbw->timestamp() ) ),
12431243 __METHOD__
 1244+ // array( 'LOCK IN SHARE MODE' )
12441245 );
1245 - $pageIds = array();
 1246+ $pageIds = $pagesClearTracking = array();
12461247 $config = self::getDefaultVisibilitySettings(); // config is to be reset
12471248 while( $row = $dbw->fetchObject( $ret ) ) {
12481249 // If FlaggedRevs got "turned off" for this page (due to not
12491250 // having the stable version as the default), then clear it
12501251 // from the tracking tables...
12511252 if( !$config['override'] && FlaggedRevs::forDefaultVersionOnly() ) {
1252 - self::clearTrackingRows( $row->fpc_page_id );
 1253+ $pagesClearTracking[] = $row->fpc_page_id; // no stable version
12531254 // Check if the new (default) config has a different way
12541255 // of selecting the stable version of this page...
12551256 } else if( $config['select'] !== intval($row->fpc_select) ) {
@@ -1259,7 +1260,7 @@
12601261 $article = new Article( $title );
12611262 self::updateStableVersion( $article, $srev, $title->getArticleID() );
12621263 } else {
1263 - self::clearTrackingRows( $row->fpc_page_id ); // no stable version
 1264+ $pagesClearTracking[] = $row->fpc_page_id; // no stable version
12641265 }
12651266 }
12661267 $pageIds[] = $row->fpc_page_id;
@@ -1268,6 +1269,10 @@
12691270 if( count($pageIds) ) {
12701271 $dbw->delete( 'flaggedpage_config', array( 'fpc_page_id' => $pageIds ), __METHOD__ );
12711272 }
 1273+ // Clear the tracking rows where needed
 1274+ if( count($pagesClearTracking) ) {
 1275+ self::clearTrackingRows( $pagesClearTracking );
 1276+ }
12721277 }
12731278
12741279 ################# Other utility functions #################
@@ -1397,7 +1402,7 @@
13981403
13991404 /**
14001405 * Clear FlaggedRevs tracking tables for this page
1401 - * @param int $pageId
 1406+ * @param mixed $pageId (int or array)
14021407 */
14031408 public static function clearTrackingRows( $pageId ) {
14041409 $dbw = wfGetDB( DB_MASTER );

Status & tagging log