Fix populateRevisionLength.php so it's not trying to select revision
fields from the archive table (they won't exist!) Follows up https://gerrit.wikimedia.org/r/#/c/54111/ Change-Id: Ie161a08097a2cd3393d69574263cfe78e4329bb4
This commit is contained in:
parent
7f51cf22f9
commit
b0aebdaa0a
2 changed files with 42 additions and 11 deletions
|
|
@ -433,6 +433,36 @@ class Revision implements IDBAccessObject {
|
|||
return $fields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the list of revision fields that should be selected to create
|
||||
* a new revision from an archive row.
|
||||
* @return array
|
||||
*/
|
||||
public static function selectArchiveFields() {
|
||||
global $wgContentHandlerUseDB;
|
||||
$fields = array(
|
||||
'ar_id',
|
||||
'ar_page_id',
|
||||
'ar_rev_id',
|
||||
'ar_text_id',
|
||||
'ar_timestamp',
|
||||
'ar_comment',
|
||||
'ar_user_text',
|
||||
'ar_user',
|
||||
'ar_minor_edit',
|
||||
'ar_deleted',
|
||||
'ar_len',
|
||||
'ar_parent_id',
|
||||
'ar_sha1',
|
||||
);
|
||||
|
||||
if ( $wgContentHandlerUseDB ) {
|
||||
$fields[] = 'ar_content_format';
|
||||
$fields[] = 'ar_content_model';
|
||||
}
|
||||
return $fields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the list of text fields that should be selected to read the
|
||||
* revision text
|
||||
|
|
|
|||
|
|
@ -53,22 +53,23 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance {
|
|||
}
|
||||
|
||||
$this->output( "Populating rev_len column\n" );
|
||||
$rev = $this->doLenUpdates( 'revision', 'rev_id', 'rev' );
|
||||
$rev = $this->doLenUpdates( 'revision', 'rev_id', 'rev', Revision::selectFields() );
|
||||
|
||||
$this->output( "Populating ar_len column\n" );
|
||||
$ar = $this->doLenUpdates( 'archive', 'ar_id', 'ar' );
|
||||
$ar = $this->doLenUpdates( 'archive', 'ar_id', 'ar', Revision::selectArchiveFields() );
|
||||
|
||||
$this->output( "rev_len and ar_len population complete [$rev revision rows, $ar archive rows].\n" );
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $table
|
||||
* @param $idCol
|
||||
* @param $prefix
|
||||
* @param string $table
|
||||
* @param string $idCol
|
||||
* @param string $prefix
|
||||
* @param array $fields
|
||||
* @return int
|
||||
*/
|
||||
protected function doLenUpdates( $table, $idCol, $prefix ) {
|
||||
protected function doLenUpdates( $table, $idCol, $prefix, $fields ) {
|
||||
$db = $this->getDB( DB_MASTER );
|
||||
$start = $db->selectField( $table, "MIN($idCol)", false, __METHOD__ );
|
||||
$end = $db->selectField( $table, "MAX($idCol)", false, __METHOD__ );
|
||||
|
|
@ -81,9 +82,9 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance {
|
|||
$blockStart = intval( $start );
|
||||
$blockEnd = intval( $start ) + $this->mBatchSize - 1;
|
||||
$count = 0;
|
||||
$fields = Revision::selectFields();
|
||||
|
||||
while ( $blockStart <= $end ) {
|
||||
$this->output( "...doing rev_id from $blockStart to $blockEnd\n" );
|
||||
$this->output( "...doing $idCol from $blockStart to $blockEnd\n" );
|
||||
$res = $db->select(
|
||||
$table,
|
||||
$fields,
|
||||
|
|
@ -114,9 +115,9 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance {
|
|||
|
||||
/**
|
||||
* @param $row
|
||||
* @param $table
|
||||
* @param $idCol
|
||||
* @param $prefix
|
||||
* @param string $table
|
||||
* @param string $idCol
|
||||
* @param string $prefix
|
||||
* @return bool
|
||||
*/
|
||||
protected function upgradeRow( $row, $table, $idCol, $prefix ) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue