parent::__construct();
global $wgCategoryCollation;
- $this->mDescription = <<<TEXT
+ $this->addDescription( <<<TEXT
This script will find all rows in the categorylinks table whose collation is
out-of-date (cl_collation != '$wgCategoryCollation') and repopulate cl_sortkey
using the page title and cl_sortkey_prefix. If all collations are
up-to-date, it will do nothing.
-TEXT;
+TEXT
+ );
$this->addOption( 'force', 'Run on all rows, even if the collation is ' .
'supposed to be up-to-date.' );
$options = array(
'LIMIT' => self::BATCH_SIZE,
- 'ORDER BY' => 'cl_to, cl_type, cl_from',
+ 'ORDER BY' => 'cl_from, cl_to',
'STRAIGHT_JOIN',
);
$res = $dbw->select(
array( 'categorylinks', 'page' ),
array( 'cl_from', 'cl_to', 'cl_sortkey_prefix', 'cl_collation',
- 'cl_sortkey', 'cl_type', 'page_namespace', 'page_title'
+ 'cl_sortkey', 'page_namespace', 'page_title'
),
array_merge( $collationConds, $batchConds, array( 'cl_from = page_id' ) ),
__METHOD__,
$this->output( " processing..." );
if ( !$dryRun ) {
- $dbw->begin( __METHOD__ );
+ $this->beginTransaction( $dbw, __METHOD__ );
}
foreach ( $res as $row ) {
$title = Title::newFromRow( $row );
}
}
if ( !$dryRun ) {
- $dbw->commit( __METHOD__ );
+ $this->commitTransaction( $dbw, __METHOD__ );
}
$count += $res->numRows();
/**
* Return an SQL expression selecting rows which sort above the given row,
- * assuming an ordering of cl_to, cl_type, cl_from
+ * assuming an ordering of cl_from, cl_to
* @param stdClass $row
* @param DatabaseBase $dbw
* @return string
*/
function getBatchCondition( $row, $dbw ) {
- $fields = array( 'cl_to', 'cl_type', 'cl_from' );
+ $fields = array( 'cl_from', 'cl_to' );
$first = true;
$cond = false;
$prefix = false;