do {
$res = $dbr->select(
array_merge( array( 'page' ), $joinTables ),
- array( 'img_name' => 'DISTINCT(page_title)' ),
+ array( 'name' => 'img_name' ),
array( 'page_namespace' => NS_FILE,
"page_title >= " . $dbr->addQuotes( $lastName ) ),
__METHOD__,
- array( 'ORDER BY' => 'page_title', 'LIMIT' => $this->mBatchSize ),
+ // DISTINCT causes a pointless filesort
+ array( 'ORDER BY' => 'name', 'GROUP BY' => 'name',
+ 'LIMIT' => $this->mBatchSize ),
$joinConds
);
// Check if any of these files are missing...
$pathsByName = array();
foreach ( $res as $row ) {
- $file = $repo->newFile( $row->img_name );
- $pathsByName[$row->img_name] = $file->getPath();
- $lastName = $row->img_name;
+ $file = $repo->newFile( $row->name );
+ $pathsByName[$row->name] = $file->getPath();
+ $lastName = $row->name;
}
$be->preloadFileStat( array( 'srcs' => $pathsByName ) );
foreach ( $pathsByName as $path ) {