http://www.mediawiki.org/wiki/Special:Code/MediaWiki/60981

Revision: 60981
Author:   aaron
Date:     2010-01-12 19:47:59 +0000 (Tue, 12 Jan 2010)

Log Message:
-----------
Combined some purgeExpiredConfigurations() queries

Modified Paths:
--------------
    trunk/extensions/FlaggedRevs/FlaggedRevs.class.php

Modified: trunk/extensions/FlaggedRevs/FlaggedRevs.class.php
===================================================================
--- trunk/extensions/FlaggedRevs/FlaggedRevs.class.php  2010-01-12 19:45:49 UTC 
(rev 60980)
+++ trunk/extensions/FlaggedRevs/FlaggedRevs.class.php  2010-01-12 19:47:59 UTC 
(rev 60981)
@@ -1240,15 +1240,16 @@
                        array( 'fpc_page_id', 'fpc_select' ),
                        array( 'fpc_expiry < ' . $dbw->addQuotes( 
$dbw->timestamp() ) ),
                        __METHOD__
+                       // array( 'LOCK IN SHARE MODE' )
                );
-               $pageIds = array();
+               $pageIds = $pagesClearTracking = array();
                $config = self::getDefaultVisibilitySettings(); // config is to 
be reset
                while( $row = $dbw->fetchObject( $ret ) ) {
                        // If FlaggedRevs got "turned off" for this page (due 
to not
                        // having the stable version as the default), then 
clear it
                        // from the tracking tables...
                        if( !$config['override'] && 
FlaggedRevs::forDefaultVersionOnly() ) {
-                               self::clearTrackingRows( $row->fpc_page_id );
+                               $pagesClearTracking[] = $row->fpc_page_id; // 
no stable version
                        // Check if the new (default) config has a different way
                        // of selecting the stable version of this page...
                        } else if( $config['select'] !== 
intval($row->fpc_select) ) {
@@ -1259,7 +1260,7 @@
                                        $article = new Article( $title );
                                        self::updateStableVersion( $article, 
$srev, $title->getArticleID() );
                                } else {
-                                       self::clearTrackingRows( 
$row->fpc_page_id ); // no stable version
+                                       $pagesClearTracking[] = 
$row->fpc_page_id; // no stable version
                                }
                        }
                        $pageIds[] = $row->fpc_page_id;
@@ -1268,6 +1269,10 @@
                if( count($pageIds) ) {
                        $dbw->delete( 'flaggedpage_config', array( 
'fpc_page_id' => $pageIds ), __METHOD__ );
                }
+               // Clear the tracking rows where needed
+               if( count($pagesClearTracking) ) {
+                       self::clearTrackingRows( $pagesClearTracking );
+               }
        }
        
        ################# Other utility functions #################
@@ -1397,7 +1402,7 @@
        
        /**
        * Clear FlaggedRevs tracking tables for this page
-       * @param int $pageId
+       * @param mixed $pageId (int or array)
        */              
        public static function clearTrackingRows( $pageId ) {
                $dbw = wfGetDB( DB_MASTER );



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to