Remove workaround for comparing database domain IDs.

Change-Id: I240d68eddec871794ed98b7ce67773114ee73ff7
This commit is contained in:
daniel 2018-01-29 19:43:11 -08:00
parent f673cfd18a
commit d2a4d614fc
2 changed files with 8 additions and 18 deletions

View file

@ -1484,29 +1484,13 @@ class RevisionStore implements IDBAccessObject, RevisionFactory, RevisionLookup
* @throws MWException * @throws MWException
*/ */
private function checkDatabaseWikiId( IDatabase $db ) { private function checkDatabaseWikiId( IDatabase $db ) {
$storeWiki = $this->wikiId; $storeWiki = $this->loadBalancer->getLocalDomainID();
$dbWiki = $db->getDomainID(); $dbWiki = $db->getDomainID();
if ( $dbWiki === $storeWiki ) { if ( $dbWiki === $storeWiki ) {
return; return;
} }
// XXX: we really want the default database ID...
$storeWiki = $storeWiki ?: wfWikiID();
$dbWiki = $dbWiki ?: wfWikiID();
if ( $dbWiki === $storeWiki ) {
return;
}
// HACK: counteract encoding imposed by DatabaseDomain
$storeWiki = str_replace( '?h', '-', $storeWiki );
$dbWiki = str_replace( '?h', '-', $dbWiki );
if ( $dbWiki === $storeWiki ) {
return;
}
throw new MWException( "RevisionStore for $storeWiki " throw new MWException( "RevisionStore for $storeWiki "
. "cannot be used with a DB connection for $dbWiki" ); . "cannot be used with a DB connection for $dbWiki" );
} }

View file

@ -22,6 +22,7 @@ use TestUserRegistry;
use Title; use Title;
use WANObjectCache; use WANObjectCache;
use Wikimedia\Rdbms\Database; use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\DatabaseDomain;
use Wikimedia\Rdbms\DatabaseSqlite; use Wikimedia\Rdbms\DatabaseSqlite;
use Wikimedia\Rdbms\FakeResultWrapper; use Wikimedia\Rdbms\FakeResultWrapper;
use Wikimedia\Rdbms\LoadBalancer; use Wikimedia\Rdbms\LoadBalancer;
@ -40,7 +41,12 @@ class RevisionStoreDbTest extends MediaWikiTestCase {
private function getLoadBalancerMock( array $server ) { private function getLoadBalancerMock( array $server ) {
$lb = $this->getMockBuilder( LoadBalancer::class ) $lb = $this->getMockBuilder( LoadBalancer::class )
->setMethods( [ 'reallyOpenConnection' ] ) ->setMethods( [ 'reallyOpenConnection' ] )
->setConstructorArgs( [ [ 'servers' => [ $server ] ] ] ) ->setConstructorArgs( [ [
'servers' => [ $server ],
'localDomain' => new DatabaseDomain(
$server['dbname'], null, $server['tablePrefix']
),
] ] )
->getMock(); ->getMock();
$lb->method( 'reallyOpenConnection' )->willReturnCallback( $lb->method( 'reallyOpenConnection' )->willReturnCallback(