* @ingroup Maintenance
*/
-require_once( __DIR__ . '/Maintenance.php' );
+require_once __DIR__ . '/Maintenance.php';
/**
* Maintenance script that fills the rev_sha1 and ar_sha1 columns of revision
$this->error( "archive table does not exist", true );
} elseif ( !$db->fieldExists( 'revision', 'rev_sha1', __METHOD__ ) ) {
$this->output( "rev_sha1 column does not exist\n\n", true );
+
return false;
}
$this->output( "Populating ar_sha1 column legacy rows\n" );
$ac += $this->doSha1LegacyUpdates();
- $this->output( "rev_sha1 and ar_sha1 population complete [$rc revision rows, $ac archive rows].\n" );
+ $this->output( "rev_sha1 and ar_sha1 population complete "
+ . "[$rc revision rows, $ac archive rows].\n" );
+
return true;
}
/**
- * @param $table string
- * @param $idCol
- * @param $prefix string
- * @return Integer Rows changed
+ * @param string $table
+ * @param string $idCol
+ * @param string $prefix
+ * @return int Rows changed
*/
protected function doSha1Updates( $table, $idCol, $prefix ) {
$db = $this->getDB( DB_MASTER );
$end = $db->selectField( $table, "MAX($idCol)", false, __METHOD__ );
if ( !$start || !$end ) {
$this->output( "...$table table seems to be empty.\n" );
+
return 0;
}
$blockEnd += $this->mBatchSize;
wfWaitForSlaves();
}
+
return $count;
}
}
}
$db->commit( __METHOD__ );
+
return $count;
}
/**
- * @param $row
- * @param $table
- * @param $idCol
- * @param $prefix
+ * @param stdClass $row
+ * @param string $table
+ * @param string $idCol
+ * @param string $prefix
* @return bool
*/
protected function upgradeRow( $row, $table, $idCol, $prefix ) {
? Revision::newFromArchiveRow( $row )
: new Revision( $row );
$text = $rev->getSerializedData();
- } catch ( MWException $e ) {
+ } catch ( Exception $e ) {
$this->output( "Data of revision with {$idCol}={$row->$idCol} unavailable!\n" );
+
return false; // bug 22624?
}
if ( !is_string( $text ) ) {
# This should not happen, but sometimes does (bug 20757)
$this->output( "Data of revision with {$idCol}={$row->$idCol} unavailable!\n" );
+
return false;
} else {
$db->update( $table,
array( $idCol => $row->$idCol ),
__METHOD__
);
+
return true;
}
}
/**
- * @param $row
+ * @param stdClass $row
* @return bool
*/
protected function upgradeLegacyArchiveRow( $row ) {
$db = $this->getDB( DB_MASTER );
try {
$rev = Revision::newFromArchiveRow( $row );
- } catch ( MWException $e ) {
+ } catch ( Exception $e ) {
$this->output( "Text of revision with timestamp {$row->ar_timestamp} unavailable!\n" );
+
return false; // bug 22624?
}
$text = $rev->getSerializedData();
if ( !is_string( $text ) ) {
# This should not happen, but sometimes does (bug 20757)
$this->output( "Data of revision with timestamp {$row->ar_timestamp} unavailable!\n" );
+
return false;
} else {
# Archive table as no PK, but (NS,title,time) should be near unique.
),
__METHOD__
);
+
return true;
}
}