From 37da69a002ffd5017771e0458983a2ba4a5311c7 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Sun, 5 Oct 2008 23:28:24 +0000 Subject: [PATCH] Fix empty protection row check to avoid adding dead rows; remove any existing ones (bug 15832) --- maintenance/updateRestrictions.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/maintenance/updateRestrictions.php b/maintenance/updateRestrictions.php index 7041e5938f..f0567b5b8f 100644 --- a/maintenance/updateRestrictions.php +++ b/maintenance/updateRestrictions.php @@ -37,18 +37,19 @@ function migrate_page_restrictions( $db ) { $encodedExpiry = 'infinity'; while ( $blockEnd <= $end ) { echo "...doing page_id from $blockStart to $blockEnd\n"; - $cond = "page_id BETWEEN $blockStart AND $blockEnd AND page_restrictions !='' AND page_restrictions !='edit=:move='"; + $cond = "page_id BETWEEN $blockStart AND $blockEnd AND page_restrictions !=''"; $res = $db->select( 'page', array('page_id', 'page_restrictions'), $cond, __FUNCTION__ ); $batch = array(); while ( $row = $db->fetchObject( $res ) ) { $oldRestrictions = array(); foreach( explode( ':', trim( $row->page_restrictions ) ) as $restrict ) { $temp = explode( '=', trim( $restrict ) ); - if(count($temp) == 1) { + // Make sure we are not settings restrictions to "" + if( count($temp) == 1 && $temp[0] ) { // old old format should be treated as edit/move restriction $oldRestrictions["edit"] = trim( $temp[0] ); $oldRestrictions["move"] = trim( $temp[0] ); - } else { + } else if( $temp[1] ) { $oldRestrictions[$temp[0]] = trim( $temp[1] ); } } @@ -77,6 +78,10 @@ function migrate_page_restrictions( $db ) { $blockEnd += BATCH_SIZE - 1; wfWaitForSlaves( 5 ); } + echo "...removing dead rows from page_restrictions\n"; + // Kill any broken rows from previous imports + $db->delete( 'page_restrictions', array( 'pr_level' => '' ) ); + echo "...Done!\n"; } -- 2.20.1