Fix upload hook params
[lhc/web/wiklou.git] / maintenance / rebuildrecentchanges.php
index be707a7..6c76dc5 100644 (file)
@@ -37,6 +37,7 @@ class RebuildRecentchanges extends Maintenance {
                $this->rebuildRecentChangesTablePass2();
                $this->rebuildRecentChangesTablePass3();
                $this->rebuildRecentChangesTablePass4();
+               $this->purgeFeeds();
                $this->output( "Done.\n" );
        }
 
@@ -114,7 +115,8 @@ class RebuildRecentchanges extends Maintenance {
                                $emit = $obj->rc_timestamp;
                                $sql2 = "SELECT rev_id,rev_len FROM $revision " .
                                        "WHERE rev_page={$lastCurId} ".
-                                       "AND rev_timestamp<'{$emit}' ORDER BY rev_timestamp DESC LIMIT 1";
+                                       "AND rev_timestamp<'{$emit}' ORDER BY rev_timestamp DESC";
+                               $sql2 = $dbw->limitResult($sql2, 1, false);
                                $res2 = $dbw->query( $sql2 );
                                if( $row = $dbw->fetchObject( $res2 ) ) {
                                        $lastOldId = intval($row->rev_id);
@@ -185,7 +187,7 @@ class RebuildRecentchanges extends Maintenance {
                                'rc_this_oldid' => 0,
                                'rc_last_oldid' => 0,
                                'rc_type'       => RC_LOG,
-                               'rc_cur_id'     => 'COALESCE(page_id, 0)',
+                               'rc_cur_id'     => $dbw->cascadingDeletes() ? 'page_id' : 'COALESCE(page_id, 0)',
                                'rc_log_type'   => 'log_type',
                                'rc_log_action' => 'log_action',
                                'rc_logid'      => 'log_id',
@@ -272,6 +274,20 @@ class RebuildRecentchanges extends Maintenance {
        
                $dbw->freeResult( $res );
        }
+
+       /**
+        * Purge cached feeds in $messageMemc
+        */
+       private function purgeFeeds() {
+               global $wgFeedClasses, $messageMemc;
+
+               $this->output( "Deleting feed timestamps.\n" );
+
+               foreach( $wgFeedClasses as $feed => $className ) {
+                       $messageMemc->delete( wfMemcKey( 'rcfeed', $feed, 'timestamp' ) ); # Good enough for now.
+               }
+       }
+
 }
 
 $maintClass = "RebuildRecentchanges";