Merge "Use User::getDefaultOption() instead of $wgDefaultUserOptions"
[lhc/web/wiklou.git] / maintenance / deleteOldRevisions.php
index a180000..45a6b34 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 /**
  * Delete old (non-current) revisions from the database
  *
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  * @author Rob Church <robchur@gmail.com>
  */
 
-require_once( dirname(__FILE__) . '/Maintenance.php' );
+require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that deletes old (non-current) revisions from the database.
+ *
+ * @ingroup Maintenance
+ */
 class DeleteOldRevisions extends Maintenance {
        public function __construct() {
                parent::__construct();
@@ -31,24 +36,24 @@ class DeleteOldRevisions extends Maintenance {
                $this->addOption( 'delete', 'Actually perform the deletion' );
                $this->addOption( 'page_id', 'List of page ids to work on', false );
        }
-       
+
        public function execute() {
                $this->output( "Delete old revisions\n\n" );
                $this->doDelete( $this->hasOption( 'delete' ), $this->mArgs );
        }
-       
+
        function doDelete( $delete = false, $args = array() ) {
 
                # Data should come off the master, wrapped in a transaction
                $dbw = wfGetDB( DB_MASTER );
-               $dbw->begin();
-       
+               $dbw->begin( __METHOD__ );
+
                $tbl_pag = $dbw->tableName( 'page' );
                $tbl_rev = $dbw->tableName( 'revision' );
-       
+
                $pageIdClause = '';
                $revPageClause = '';
-       
+
                # If a list of page_ids was provided, limit results to that set of page_ids
                if ( sizeof( $args ) > 0 ) {
                        $pageIdList = implode( ',', $args );
@@ -56,45 +61,47 @@ class DeleteOldRevisions extends Maintenance {
                        $revPageClause = " AND rev_page IN ({$pageIdList})";
                        $this->output( "Limiting to {$tbl_pag}.page_id IN ({$pageIdList})\n" );
                }
-       
+
                # Get "active" revisions from the page table
                $this->output( "Searching for active revisions..." );
                $res = $dbw->query( "SELECT page_latest FROM $tbl_pag{$pageIdClause}" );
-               foreach( $res as $row ) {
+               $cur = array();
+               foreach ( $res as $row ) {
                        $cur[] = $row->page_latest;
                }
                $this->output( "done.\n" );
-       
+
                # Get all revisions that aren't in this set
+               $old = array();
                $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}" );
-               foreach( $res as $row ) {
+               foreach ( $res as $row ) {
                        $old[] = $row->rev_id;
                }
                $this->output( "done.\n" );
-       
+
                # Inform the user of what we're going to do
                $count = count( $old );
                $this->output( "$count old revisions found.\n" );
-       
+
                # Delete as appropriate
-               if( $delete && $count ) {
+               if ( $delete && $count ) {
                        $this->output( "Deleting..." );
                        $set = implode( ', ', $old );
                        $dbw->query( "DELETE FROM $tbl_rev WHERE rev_id IN ( $set )" );
                        $this->output( "done.\n" );
                }
-       
+
                # This bit's done
                # Purge redundant text records
-               $dbw->commit();
-               if( $delete ) {
+               $dbw->commit( __METHOD__ );
+               if ( $delete ) {
                        $this->purgeRedundantText( true );
                }
        }
 }
 
 $maintClass = "DeleteOldRevisions";
-require_once( DO_MAINTENANCE );
+require_once( RUN_MAINTENANCE_IF_MAIN );