+ # Stash 'em all up for deletion (if needed)
+ $revisions = array();
+ foreach ( $res as $row )
+ $revisions[] = $row->rev_id;
+ $count = count( $revisions );
+ $this->output( "found {$count}.\n" );
+
+ # Nothing to do?
+ if ( $report || $count == 0 ) {
+ $dbw->commit();
+ exit( 0 );
+ }
+
+ # Delete each revision
+ $this->output( "Deleting..." );
+ $this->deleteRevs( $revisions, $dbw );
+ $this->output( "done.\n" );
+
+ # Close the transaction and call the script to purge unused text records
+ $dbw->commit( __METHOD__ );
+ $this->purgeRedundantText( true );
+ }
+
+ /**
+ * Delete one or more revisions from the database
+ * Do this inside a transaction
+ *
+ * @param $id Array of revision id values
+ * @param $dbw DatabaseBase class (needs to be a master)
+ */
+ private function deleteRevs( $id, &$dbw ) {
+ if ( !is_array( $id ) )
+ $id = array( $id );
+ $dbw->delete( 'revision', array( 'rev_id' => $id ), __METHOD__ );
+ }
+}