public function execute() {
$db = $this->getDB( DB_MASTER );
+ $batchSize = $this->getBatchSize();
if ( !$db->tableExists( 'page_restrictions' ) ) {
- $this->error( "page_restrictions table does not exist", true );
+ $this->fatalError( "page_restrictions table does not exist" );
}
- $start = $db->selectField( 'page', 'MIN(page_id)', false, __METHOD__ );
+ $start = $db->selectField( 'page', 'MIN(page_id)', '', __METHOD__ );
if ( !$start ) {
- $this->error( "Nothing to do.", true );
+ $this->fatalError( "Nothing to do." );
}
- $end = $db->selectField( 'page', 'MAX(page_id)', false, __METHOD__ );
+ $end = $db->selectField( 'page', 'MAX(page_id)', '', __METHOD__ );
# Do remaining chunk
- $end += $this->mBatchSize - 1;
+ $end += $batchSize - 1;
$blockStart = $start;
- $blockEnd = $start + $this->mBatchSize - 1;
+ $blockEnd = $start + $batchSize - 1;
$encodedExpiry = 'infinity';
while ( $blockEnd <= $end ) {
$this->output( "...doing page_id from $blockStart to $blockEnd out of $end\n" );
- $cond = "page_id BETWEEN $blockStart AND $blockEnd AND page_restrictions !=''";
+ $cond = "page_id BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd .
+ " AND page_restrictions !=''";
$res = $db->select(
'page',
[ 'page_id', 'page_namespace', 'page_restrictions' ],
foreach ( $res as $row ) {
$oldRestrictions = [];
foreach ( explode( ':', trim( $row->page_restrictions ) ) as $restrict ) {
- $temp = explode( '=', trim( $restrict ) );
+ $temp = explode( '=', trim( $restrict ), 2 );
// Make sure we are not settings restrictions to ""
if ( count( $temp ) == 1 && $temp[0] ) {
// old old format should be treated as edit/move restriction
throw new MWException( "Deadlock loop failed wtf :(" );
}
}
- $blockStart += $this->mBatchSize - 1;
- $blockEnd += $this->mBatchSize - 1;
+ $blockStart += $batchSize - 1;
+ $blockEnd += $batchSize - 1;
wfWaitForSlaves();
}
$this->output( "...removing dead rows from page_restrictions\n" );
}
}
-$maintClass = "UpdateRestrictions";
+$maintClass = UpdateRestrictions::class;
require_once RUN_MAINTENANCE_IF_MAIN;