Hello Daniel Kinzler, Tim Starling, Legoktm, I'd like you to do a code review. Please visit
https://gerrit.wikimedia.org/r/383923 to review the following change. Change subject: Update for deprecation of selectFields() methods ...................................................................... Update for deprecation of selectFields() methods Various selectFields() methods were deprecated in MediaWiki core change Idcfd1556. This change adapts the extension to use the replacement getQueryInfo() methods when available. Change-Id: I42237e8e29497bbc56606f6ad01de3d525bf8b2a --- M includes/Sanity/Checker.php M maintenance/forceSearchIndex.php 2 files changed, 39 insertions(+), 10 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/CirrusSearch refs/changes/23/383923/1 diff --git a/includes/Sanity/Checker.php b/includes/Sanity/Checker.php index 8f8c364..cb907e2 100644 --- a/includes/Sanity/Checker.php +++ b/includes/Sanity/Checker.php @@ -303,11 +303,22 @@ } $dbr = $this->getDB(); $where = 'page_id IN (' . $dbr->makeList( $pageIds ) . ')'; + if ( is_callable( WikiPage::class, 'getQueryInfo' ) ) { + $pageQuery = WikiPage::getQueryInfo(); + } else { + $pageQuery = [ + 'tables' => [ 'page' ], + 'fields' => WikiPage::selectFields(), + 'joins' => [], + ]; + } $res = $dbr->select( - [ 'page' ], - WikiPage::selectFields(), + $pageQuery['tables'], + $pageQuery['fields'], $where, - __METHOD__ + __METHOD__, + [], + $pageQuery['joins'] ); foreach ( $res as $row ) { $page = WikiPage::newFromRow( $row ); diff --git a/maintenance/forceSearchIndex.php b/maintenance/forceSearchIndex.php index 4e151ba..9d0f41e 100644 --- a/maintenance/forceSearchIndex.php +++ b/maintenance/forceSearchIndex.php @@ -427,7 +427,10 @@ protected function getIdsIterator() { $dbr = $this->getDB( DB_REPLICA, [ 'vslow' ] ); - $it = new BatchRowIterator( $dbr, 'page', 'page_id', $this->mBatchSize ); + $it = new BatchRowIterator( + $dbr, self::getPageQueryInfo()['tables'], 'page_id', $this->mBatchSize + ); + $it->addJoinConditions( self::getPageQueryInfo()['joins'] ); $it->addConditions( [ 'page_id in (' . $dbr->makeList( $this->pageIds, LIST_COMMA ) . ')', ] ); @@ -440,13 +443,13 @@ $dbr = $this->getDB( DB_REPLICA, [ 'vslow' ] ); $it = new BatchRowIterator( $dbr, - [ 'page', 'revision' ], + array_merge( self::getPageQueryInfo()['tables'], [ 'revision' ] ), [ 'rev_timestamp', 'page_id' ], $this->mBatchSize ); - $it->addConditions( [ - 'rev_page = page_id', - 'rev_id = page_latest', + $it->addJoinConditions( self::getPageQueryInfo()['joins'] ); + $it->addJoinConditions( [ + 'revision' => [ 'JOIN', [ 'rev_page = page_id', 'rev_id = page_latest' ] ] ] ); $this->attachTimestampConditions( $dbr, $it, 'rev' ); @@ -457,7 +460,10 @@ protected function getUpdatesByIdIterator() { $dbr = $this->getDB( DB_REPLICA, [ 'vslow' ] ); - $it = new BatchRowIterator( $dbr, 'page', 'page_id', $this->mBatchSize ); + $it = new BatchRowIterator( + $dbr, self::getPageQueryInfo()['tables'], 'page_id', $this->mBatchSize + ); + $it->addJoinConditions( self::getPageQueryInfo()['joins'] ); $fromId = $this->getOption( 'fromId', 0 ); if ( $fromId > 0 ) { $it->addConditions( [ @@ -490,9 +496,21 @@ } } + private static function getPageQueryInfo() { + if ( is_callable( WikiPage::class, 'getQueryInfo' ) ) { + return WikiPage::getQueryInfo(); + } + + return [ + 'tables' => [ 'page' ], + 'fields' => WikiPage::selectFields(), + 'joins' => [], + ]; + } + private function attachPageConditions( IDatabase $dbr, BatchRowIterator $it, $columnPrefix ) { if ( $columnPrefix === 'page' ) { - $it->setFetchColumns( WikiPage::selectFields() ); + $it->setFetchColumns( self::getPageQueryInfo()['fields'] ); } if ( $this->namespace ) { $it->addConditions( [ -- To view, visit https://gerrit.wikimedia.org/r/383923 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I42237e8e29497bbc56606f6ad01de3d525bf8b2a Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/CirrusSearch Gerrit-Branch: master Gerrit-Owner: Anomie <bjor...@wikimedia.org> Gerrit-Reviewer: Daniel Kinzler <daniel.kinz...@wikimedia.de> Gerrit-Reviewer: Legoktm <lego...@member.fsf.org> Gerrit-Reviewer: Tim Starling <tstarl...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits