From 3887981320fcc1f06479a39f7fa7cf358845683a Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Thu, 6 Oct 2016 10:11:17 -0700 Subject: [PATCH] Convert WatchedItemQueryService to using getConnectionRef() Change-Id: I3dfe959d057d59a7d01c74a8f701cda0110dad2f --- includes/WatchedItemQueryService.php | 32 ++++++------------- .../WatchedItemQueryServiceUnitTest.php | 2 +- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/includes/WatchedItemQueryService.php b/includes/WatchedItemQueryService.php index 4802f72ecb..84972247a6 100644 --- a/includes/WatchedItemQueryService.php +++ b/includes/WatchedItemQueryService.php @@ -55,19 +55,11 @@ class WatchedItemQueryService { } /** - * @return Database + * @return IDatabase * @throws MWException */ private function getConnection() { - return $this->loadBalancer->getConnection( DB_REPLICA, [ 'watchlist' ] ); - } - - /** - * @param Database $connection - * @throws MWException - */ - private function reuseConnection( Database $connection ) { - $this->loadBalancer->reuseConnection( $connection ); + return $this->loadBalancer->getConnectionRef( DB_REPLICA, [ 'watchlist' ] ); } /** @@ -181,8 +173,6 @@ class WatchedItemQueryService { $joinConds ); - $this->reuseConnection( $db ); - $items = []; foreach ( $res as $row ) { $items[] = [ @@ -258,8 +248,6 @@ class WatchedItemQueryService { $dbOptions ); - $this->reuseConnection( $db ); - $watchedItems = []; foreach ( $res as $row ) { // todo these could all be cached at some point? @@ -337,7 +325,7 @@ class WatchedItemQueryService { } private function getWatchedItemsWithRCInfoQueryConds( - Database $db, + IDatabase $db, User $user, array $options ) { @@ -445,7 +433,7 @@ class WatchedItemQueryService { return $conds; } - private function getStartEndConds( Database $db, array $options ) { + private function getStartEndConds( IDatabase $db, array $options ) { if ( !isset( $options['start'] ) && ! isset( $options['end'] ) ) { return []; } @@ -464,7 +452,7 @@ class WatchedItemQueryService { return $conds; } - private function getUserRelatedConds( Database $db, User $user, array $options ) { + private function getUserRelatedConds( IDatabase $db, User $user, array $options ) { if ( !array_key_exists( 'onlyByUser', $options ) && !array_key_exists( 'notByUser', $options ) ) { return []; } @@ -491,7 +479,7 @@ class WatchedItemQueryService { return $conds; } - private function getExtraDeletedPageLogEntryRelatedCond( Database $db, User $user ) { + private function getExtraDeletedPageLogEntryRelatedCond( IDatabase $db, User $user ) { // LogPage::DELETED_ACTION hides the affected page, too. So hide those // entirely from the watchlist, or someone could guess the title. $bitmask = 0; @@ -509,7 +497,7 @@ class WatchedItemQueryService { return ''; } - private function getStartFromConds( Database $db, array $options ) { + private function getStartFromConds( IDatabase $db, array $options ) { $op = $options['dir'] === self::DIR_OLDER ? '<' : '>'; list( $rcTimestamp, $rcId ) = $options['startFrom']; $rcTimestamp = $db->addQuotes( $db->timestamp( $rcTimestamp ) ); @@ -529,7 +517,7 @@ class WatchedItemQueryService { ); } - private function getWatchedItemsForUserQueryConds( Database $db, User $user, array $options ) { + private function getWatchedItemsForUserQueryConds( IDatabase $db, User $user, array $options ) { $conds = [ 'wl_user' => $user->getId() ]; if ( $options['namespaceIds'] ) { $conds['wl_namespace'] = array_map( 'intval', $options['namespaceIds'] ); @@ -563,12 +551,12 @@ class WatchedItemQueryService { * Creates a query condition part for getting only items before or after the given link target * (while ordering using $sort mode) * - * @param Database $db + * @param IDatabase $db * @param LinkTarget $target * @param string $op comparison operator to use in the conditions * @return string */ - private function getFromUntilTargetConds( Database $db, LinkTarget $target, $op ) { + private function getFromUntilTargetConds( IDatabase $db, LinkTarget $target, $op ) { return $db->makeList( [ "wl_namespace $op " . $target->getNamespace(), diff --git a/tests/phpunit/includes/WatchedItemQueryServiceUnitTest.php b/tests/phpunit/includes/WatchedItemQueryServiceUnitTest.php index 93e0b57f7a..92446ed950 100644 --- a/tests/phpunit/includes/WatchedItemQueryServiceUnitTest.php +++ b/tests/phpunit/includes/WatchedItemQueryServiceUnitTest.php @@ -55,7 +55,7 @@ class WatchedItemQueryServiceUnitTest extends PHPUnit_Framework_TestCase { ->disableOriginalConstructor() ->getMock(); $mock->expects( $this->any() ) - ->method( 'getConnection' ) + ->method( 'getConnectionRef' ) ->with( DB_SLAVE ) ->will( $this->returnValue( $mockDb ) ); return $mock; -- 2.20.1