mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Linter
synced 2024-09-23 10:21:52 +00:00
Replace use of select or selectRow with QueryBuilder
* All database methods using old access methods converted to use queryBuilder except row counters Bug: T312434 Change-Id: I8796adf63179c4505fbb76ab6fd71cf3775c9b89
This commit is contained in:
parent
eea0d24d03
commit
bef1042e69
|
@ -26,6 +26,7 @@ use MediaWiki\MediaWikiServices;
|
|||
use stdClass;
|
||||
use WikiMap;
|
||||
use Wikimedia\Rdbms\DBConnRef;
|
||||
use Wikimedia\Rdbms\IReadableDatabase;
|
||||
use Wikimedia\Rdbms\SelectQueryBuilder;
|
||||
|
||||
/**
|
||||
|
@ -86,6 +87,13 @@ class Database {
|
|||
return MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnectionRef( $mode );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return IReadableDatabase
|
||||
*/
|
||||
public static function getReplicaDBConnection(): IReadableDatabase {
|
||||
return MediaWikiServices::getInstance()->getDBLoadBalancerFactory()->getReplicaDatabase();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a specific LintError by id
|
||||
*
|
||||
|
@ -93,12 +101,12 @@ class Database {
|
|||
* @return bool|LintError
|
||||
*/
|
||||
public function getFromId( $id ) {
|
||||
$row = self::getDBConnectionRef( DB_REPLICA )->selectRow(
|
||||
'linter',
|
||||
[ 'linter_cat', 'linter_params', 'linter_start', 'linter_end' ],
|
||||
[ 'linter_id' => $id, 'linter_page' => $this->pageId ],
|
||||
__METHOD__
|
||||
);
|
||||
$row = self::getReplicaDBConnection()->newSelectQueryBuilder()
|
||||
->select( [ 'linter_cat', 'linter_params', 'linter_start', 'linter_end' ] )
|
||||
->from( 'linter' )
|
||||
->where( [ 'linter_id' => $id, 'linter_page' => $this->pageId ] )
|
||||
->caller( __METHOD__ )
|
||||
->fetchRow();
|
||||
|
||||
if ( $row ) {
|
||||
$row->linter_id = $id;
|
||||
|
@ -139,15 +147,13 @@ class Database {
|
|||
* @return LintError[]
|
||||
*/
|
||||
public function getForPage() {
|
||||
$rows = self::getDBConnectionRef( DB_REPLICA )->select(
|
||||
'linter',
|
||||
[
|
||||
'linter_id', 'linter_cat', 'linter_start',
|
||||
'linter_end', 'linter_params'
|
||||
],
|
||||
[ 'linter_page' => $this->pageId ],
|
||||
__METHOD__
|
||||
);
|
||||
$rows = self::getReplicaDBConnection()->newSelectQueryBuilder()
|
||||
->select( [ 'linter_id', 'linter_cat', 'linter_start', 'linter_end', 'linter_params' ] )
|
||||
->from( 'linter' )
|
||||
->where( [ 'linter_page' => $this->pageId ] )
|
||||
->caller( __METHOD__ )
|
||||
->fetchResultSet();
|
||||
|
||||
$result = [];
|
||||
foreach ( $rows as $row ) {
|
||||
$error = self::makeLintError( $row );
|
||||
|
@ -346,13 +352,13 @@ class Database {
|
|||
* @return int[]
|
||||
*/
|
||||
private function getTotalsAccurate( $conds = [] ) {
|
||||
$rows = self::getDBConnectionRef( DB_REPLICA )->select(
|
||||
'linter',
|
||||
[ 'linter_cat', 'COUNT(*) AS count' ],
|
||||
$conds,
|
||||
__METHOD__,
|
||||
[ 'GROUP BY' => 'linter_cat' ]
|
||||
);
|
||||
$rows = self::getReplicaDBConnection()->newSelectQueryBuilder()
|
||||
->select( [ 'linter_cat', 'COUNT(*) AS count' ] )
|
||||
->from( 'linter' )
|
||||
->where( $conds )
|
||||
->caller( __METHOD__ )
|
||||
->groupBy( 'linter_cat' )
|
||||
->fetchResultSet();
|
||||
|
||||
// Initialize zero values
|
||||
$ret = array_fill_keys( $this->categoryManager->getVisibleCategories(), 0 );
|
||||
|
|
Loading…
Reference in a new issue