Move Database and subclasses to Rdbms namespace

Change-Id: I52bef87512f9ddd155d1f4cc0052f6b7a0db5b42
This commit is contained in:
Aaron Schulz 2017-02-06 20:49:57 -08:00
parent 8e7482e32f
commit d735dc562d
59 changed files with 171 additions and 58 deletions

View file

@ -1260,7 +1260,6 @@ $wgAutoloadLocalClasses = [
'SVGReader' => __DIR__ . '/includes/media/SVGMetadataExtractor.php',
'SamplingStatsdClient' => __DIR__ . '/includes/libs/stats/SamplingStatsdClient.php',
'Sanitizer' => __DIR__ . '/includes/Sanitizer.php',
'SavepointPostgres' => __DIR__ . '/includes/libs/rdbms/database/utils/SavepointPostgres.php',
'ScopedCallback' => __DIR__ . '/includes/compat/ScopedCallback.php',
'ScopedLock' => __DIR__ . '/includes/libs/lockmanager/ScopedLock.php',
'SearchApi' => __DIR__ . '/includes/api/SearchApi.php',
@ -1596,7 +1595,14 @@ $wgAutoloadLocalClasses = [
'Wikimedia\\Rdbms\\ConnectionManager' => __DIR__ . '/includes/libs/rdbms/connectionmanager/ConnectionManager.php',
'Wikimedia\\Rdbms\\DBConnRef' => __DIR__ . '/includes/libs/rdbms/database/DBConnRef.php',
'Wikimedia\\Rdbms\\DBMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/DBMasterPos.php',
'Wikimedia\\Rdbms\\Database' => __DIR__ . '/includes/libs/rdbms/database/Database.php',
'Wikimedia\\Rdbms\\DatabaseDomain' => __DIR__ . '/includes/libs/rdbms/database/DatabaseDomain.php',
'Wikimedia\\Rdbms\\DatabaseMssql' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMssql.php',
'Wikimedia\\Rdbms\\DatabaseMysql' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysql.php',
'Wikimedia\\Rdbms\\DatabaseMysqlBase' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqlBase.php',
'Wikimedia\\Rdbms\\DatabaseMysqli' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqli.php',
'Wikimedia\\Rdbms\\DatabasePostgres' => __DIR__ . '/includes/libs/rdbms/database/DatabasePostgres.php',
'Wikimedia\\Rdbms\\DatabaseSqlite' => __DIR__ . '/includes/libs/rdbms/database/DatabaseSqlite.php',
'Wikimedia\\Rdbms\\FakeResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/FakeResultWrapper.php',
'Wikimedia\\Rdbms\\Field' => __DIR__ . '/includes/libs/rdbms/field/Field.php',
'Wikimedia\\Rdbms\\IBlob' => __DIR__ . '/includes/libs/rdbms/encasing/IBlob.php',
@ -1626,6 +1632,7 @@ $wgAutoloadLocalClasses = [
'Wikimedia\\Rdbms\\PostgresField' => __DIR__ . '/includes/libs/rdbms/field/PostgresField.php',
'Wikimedia\\Rdbms\\ResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php',
'Wikimedia\\Rdbms\\SQLiteField' => __DIR__ . '/includes/libs/rdbms/field/SQLiteField.php',
'Wikimedia\\Rdbms\\SavepointPostgres' => __DIR__ . '/includes/libs/rdbms/database/utils/SavepointPostgres.php',
'Wikimedia\\Rdbms\\SessionConsistentConnectionManager' => __DIR__ . '/includes/libs/rdbms/connectionmanager/SessionConsistentConnectionManager.php',
'Wikimedia\\Rdbms\\TransactionProfiler' => __DIR__ . '/includes/libs/rdbms/TransactionProfiler.php',
'WikitextContent' => __DIR__ . '/includes/content/WikitextContent.php',

View file

@ -20,6 +20,7 @@
* @file
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
use MediaWiki\MediaWikiServices;

View file

@ -3072,7 +3072,7 @@ function wfSplitWikiID( $wiki ) {
* @todo Replace calls to wfGetDB with calls to LoadBalancer::getConnection()
* on an injected instance of LoadBalancer.
*
* @return Database
* @return \Wikimedia\Rdbms\Database
*/
function wfGetDB( $db, $groups = [], $wiki = false ) {
return wfGetLB( $wiki )->getConnection( $db, $groups, $wiki );

View file

@ -20,6 +20,7 @@
* @file
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
use MediaWiki\Linker\LinkTarget;
use MediaWiki\MediaWikiServices;

View file

@ -20,6 +20,7 @@
* @file
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
/**

View file

@ -22,6 +22,7 @@
* @file
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
use MediaWiki\Linker\LinkTarget;
use MediaWiki\Interwiki\InterwikiLookup;

View file

@ -23,6 +23,7 @@
*/
use MediaWiki\MediaWikiServices;
use Wikimedia\Rdbms\Database;
/**
* Displays information about a page.

View file

@ -626,7 +626,7 @@ abstract class ApiBase extends ContextSource {
/**
* Gets a default replica DB connection object
* @return Database
* @return IDatabase
*/
protected function getDB() {
if ( !isset( $this->mSlaveDB ) ) {

View file

@ -25,6 +25,7 @@
*/
use MediaWiki\MediaWikiServices;
use Wikimedia\Rdbms\Database;
/**
* @ingroup API

View file

@ -1426,7 +1426,7 @@ class ApiPageSet extends ApiBase {
/**
* Get the database connection (read-only)
* @return Database
* @return IDatabase
*/
protected function getDB() {
return $this->mDbSource->getDB();

View file

@ -24,6 +24,8 @@
* @file
*/
use Wikimedia\Rdbms\IDatabase;
/**
* This is the main query class. It behaves similar to ApiMain: based on the
* parameters given, it will create a list of titles to work on (an ApiPageSet
@ -168,7 +170,7 @@ class ApiQuery extends ApiBase {
* @param string $name Name to assign to the database connection
* @param int $db One of the DB_* constants
* @param array $groups Query groups
* @return Database
* @return IDatabase
*/
public function getNamedDB( $name, $db, $groups ) {
if ( !array_key_exists( $name, $this->mNamedDB ) ) {

View file

@ -24,6 +24,7 @@
* @file
*/
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\ResultWrapper;
/**
@ -105,7 +106,7 @@ abstract class ApiQueryBase extends ApiBase {
/**
* Get the Query database connection (read-only)
* @return Database
* @return IDatabase
*/
protected function getDB() {
if ( is_null( $this->mDb ) ) {
@ -121,7 +122,7 @@ abstract class ApiQueryBase extends ApiBase {
* @param string $name Name to assign to the database connection
* @param int $db One of the DB_* constants
* @param array $groups Query groups
* @return Database
* @return IDatabase
*/
public function selectNamedDB( $name, $db, $groups ) {
$this->mDb = $this->getQuery()->getNamedDB( $name, $db, $groups );

View file

@ -143,7 +143,7 @@ class BacklinkCache {
/**
* Get the replica DB connection to the database
* When non existing, will initialize the connection.
* @return Database
* @return IDatabase
*/
protected function getDB() {
if ( !isset( $this->db ) ) {

View file

@ -20,6 +20,8 @@
* @file
* @ingroup Cache
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
use MediaWiki\Linker\LinkTarget;
use MediaWiki\MediaWikiServices;

View file

@ -26,6 +26,7 @@
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use Wikimedia\Rdbms\Database;
/**
* This class generates message blobs for use by ResourceLoader modules.

View file

@ -23,6 +23,7 @@
use MediaWiki\MediaWikiServices;
use Wikimedia\ScopedCallback;
use MediaWiki\Logger\LoggerFactory;
use Wikimedia\Rdbms\Database;
/**
* MediaWiki message cache structure version.

View file

@ -21,6 +21,8 @@
* @ingroup Change tagging
*/
use Wikimedia\Rdbms\Database;
class ChangeTags {
/**
* Can't delete tags with more than this many uses. Similar in intent to

View file

@ -1,5 +1,6 @@
<?php
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\LoadBalancer;
/**

View file

@ -20,6 +20,8 @@
* @file
* @ingroup Database
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\Blob;
use Wikimedia\Rdbms\ResultWrapper;

View file

@ -21,6 +21,7 @@
* @ingroup FileRepo
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
/**

View file

@ -23,6 +23,7 @@
*/
use Wikimedia\Rdbms\ResultWrapper;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
/**

View file

@ -21,7 +21,8 @@
* @ingroup FileAbstraction
*/
use \MediaWiki\Logger\LoggerFactory;
use MediaWiki\Logger\LoggerFactory;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
/**

View file

@ -21,6 +21,7 @@
* @ingroup Deployment
*/
use Wikimedia\Rdbms\LBFactorySingle;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
/**

View file

@ -20,6 +20,7 @@
* @file
* @ingroup Deployment
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
use MediaWiki\MediaWikiServices;

View file

@ -21,6 +21,8 @@
* @ingroup Deployment
*/
use Wikimedia\Rdbms\Database;
/**
* Class for setting up the MediaWiki database using Microsoft SQL Server.
*

View file

@ -21,6 +21,8 @@
* @ingroup Deployment
*/
use Wikimedia\Rdbms\DatabaseMssql;
/**
* Class for setting up the MediaWiki database using Microsoft SQL Server.
*

View file

@ -21,6 +21,8 @@
* @ingroup Deployment
*/
use Wikimedia\Rdbms\Database;
/**
* Class for setting up the MediaWiki database using MySQL.
*

View file

@ -21,6 +21,8 @@
* @ingroup Deployment
*/
use Wikimedia\Rdbms\Database;
/**
* Class for setting up the MediaWiki database using Postgres.
*

View file

@ -21,6 +21,8 @@
* @ingroup Deployment
*/
use Wikimedia\Rdbms\DatabasePostgres;
/**
* Class for handling updates to Postgres databases.
*

View file

@ -21,6 +21,9 @@
* @ingroup Deployment
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\DatabaseSqlite;
/**
* Class for setting up the MediaWiki database using SQLLite.
*

View file

@ -21,6 +21,8 @@
* @ingroup Deployment
*/
use Wikimedia\Rdbms\DatabaseSqlite;
/**
* Class for handling updates to Sqlite databases.
*

View file

@ -23,7 +23,7 @@ namespace MediaWiki\Interwiki;
*/
use \Cdb\Exception as CdbException;
use \Cdb\Reader as CdbReader;
use Database;
use Wikimedia\Rdbms\Database;
use Hooks;
use Interwiki;
use Language;

View file

@ -21,6 +21,7 @@
* @ingroup LockManager
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
/**

View file

@ -2,7 +2,6 @@
namespace Wikimedia\Rdbms;
use Database;
use InvalidArgumentException;
/**

View file

@ -2,8 +2,6 @@
namespace Wikimedia\Rdbms;
use Database;
/**
* Database connection manager.
*

View file

@ -2,7 +2,6 @@
namespace Wikimedia\Rdbms;
use Database;
use InvalidArgumentException;
/**
@ -605,4 +604,4 @@ class DBConnRef implements IDatabase {
}
}
class_alias( 'Wikimedia\Rdbms\DBConnRef', 'DBConnRef' );
class_alias( DBConnRef::class, 'DBConnRef' );

View file

@ -23,18 +23,22 @@
* @file
* @ingroup Database
*/
namespace Wikimedia\Rdbms;
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Wikimedia\ScopedCallback;
use Wikimedia\Rdbms\TransactionProfiler;
use Wikimedia\Rdbms\LikeMatch;
use Wikimedia\Rdbms\DatabaseDomain;
use Wikimedia\Rdbms\ResultWrapper;
use Wikimedia\Rdbms\DBMasterPos;
use Wikimedia\Rdbms\Blob;
use Wikimedia\Timestamp\ConvertibleTimestamp;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\IMaintainableDatabase;
use MediaWiki;
use BagOStuff;
use HashBagOStuff;
use InvalidArgumentException;
use DBQueryError;
use DBUnexpectedError;
use DBConnectionError;
use DBReadOnlyError;
use Exception;
use RuntimeException;
/**
* Relational database abstraction object
@ -339,6 +343,13 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware
'oracle' => [],
'mssql' => [],
];
static $classAliases = [
'DatabaseMssql' => DatabaseMssql::class,
'DatabaseMysql' => DatabaseMysql::class,
'DatabaseMysqli' => DatabaseMysqli::class,
'DatabaseSqlite' => DatabaseSqlite::class,
'DatabasePostgres' => DatabasePostgres::class
];
$driver = false;
$dbType = strtolower( $dbType );
@ -362,12 +373,17 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware
} else {
$driver = $dbType;
}
if ( $driver === false || $driver === '' ) {
throw new InvalidArgumentException( __METHOD__ .
" no viable database extension found for type '$dbType'" );
}
$class = 'Database' . ucfirst( $driver );
if ( isset( $classAliases[$class] ) ) {
$class = $classAliases[$class];
}
if ( class_exists( $class ) && is_subclass_of( $class, IDatabase::class ) ) {
// Resolve some defaults for b/c
$p['host'] = isset( $p['host'] ) ? $p['host'] : false;
@ -3479,4 +3495,5 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware
}
}
class_alias( Database::class, 'DatabaseBase' );
class_alias( Database::class, 'DatabaseBase' ); // b/c for old name
class_alias( Database::class, 'Database' ); // b/c global alias

View file

@ -24,11 +24,15 @@
* @author Ryan Biesemeyer <v-ryanbi at microsoft dot com>
* @author Ryan Schmidt <skizzerz at gmail dot com>
*/
use Wikimedia\Rdbms\Blob;
use Wikimedia\Rdbms\MssqlBlob;
use Wikimedia\Rdbms\MssqlField;
use Wikimedia\Rdbms\ResultWrapper;
use Wikimedia\Rdbms\MssqlResultWrapper;
namespace Wikimedia\Rdbms;
use MediaWiki;
use DBConnectionError;
use DBUnexpectedError;
use DBQueryError;
use Exception;
use stdClass;
/**
* @ingroup Database
@ -1360,3 +1364,5 @@ class DatabaseMssql extends Database {
return $old;
}
}
class_alias( DatabaseMssql::class, 'DatabaseMssql' );

View file

@ -20,6 +20,9 @@
* @file
* @ingroup Database
*/
namespace Wikimedia\Rdbms;
use DBConnectionError;
/**
* Database abstraction object for PHP extension mysql.
@ -202,3 +205,5 @@ class DatabaseMysql extends DatabaseMysqlBase {
return mysql_real_escape_string( $s, $conn );
}
}
class_alias( DatabaseMysql::class, 'DatabaseMysql' );

View file

@ -20,10 +20,18 @@
* @file
* @ingroup Database
*/
use Wikimedia\Rdbms\DBMasterPos;
use Wikimedia\Rdbms\MySQLMasterPos;
use Wikimedia\Rdbms\MySQLField;
use Wikimedia\Rdbms\ResultWrapper;
namespace Wikimedia\Rdbms;
use DateTime;
use DateTimeZone;
use MediaWiki;
use InvalidArgumentException;
use DBError;
use DBExpectedError;
use DBUnexpectedError;
use DBConnectionError;
use Exception;
use stdClass;
/**
* Database abstraction object for MySQL.
@ -1360,3 +1368,5 @@ abstract class DatabaseMysqlBase extends Database {
}
}
}
class_alias( DatabaseMysqlBase::class, 'DatabaseMysqlBase' );

View file

@ -20,8 +20,11 @@
* @file
* @ingroup Database
*/
namespace Wikimedia\Rdbms;
use Wikimedia\Rdbms\ResultWrapper;
use mysqli;
use DBConnectionError;
use IP;
/**
* Database abstraction object for PHP extension mysqli.
@ -263,7 +266,7 @@ class DatabaseMysqli extends DatabaseMysqlBase {
}
/**
* @param resource|ResultWrapper $res
* @param mysqli $res
* @param int $n
* @return mixed
*/
@ -274,7 +277,7 @@ class DatabaseMysqli extends DatabaseMysqlBase {
}
/**
* @param resource|ResultWrapper $res
* @param mysqli $res
* @param int $n
* @return mixed
*/
@ -285,7 +288,7 @@ class DatabaseMysqli extends DatabaseMysqlBase {
}
/**
* @param resource|ResultWrapper $res
* @param mysqli $res
* @param int $row
* @return mixed
*/
@ -331,3 +334,5 @@ class DatabaseMysqli extends DatabaseMysqlBase {
}
}
}
class_alias( DatabaseMysqli::class, 'DatabaseMysqli' );

View file

@ -20,12 +20,14 @@
* @file
* @ingroup Database
*/
namespace Wikimedia\Rdbms;
use Wikimedia\Timestamp\ConvertibleTimestamp;
use Wikimedia\WaitConditionLoop;
use Wikimedia\Rdbms\Blob;
use Wikimedia\Rdbms\PostgresBlob;
use Wikimedia\Rdbms\PostgresField;
use Wikimedia\Rdbms\ResultWrapper;
use MediaWiki;
use DBUnexpectedError;
use DBConnectionError;
use Exception;
/**
* @ingroup Database
@ -859,10 +861,10 @@ __INDEXATTR__;
*
* @since 1.19
* @param string $text Postgreql array returned in a text form like {a,b}
* @param string $output
* @param string[] $output
* @param int|bool $limit
* @param int $offset
* @return string
* @return string[]
*/
private function pg_array_parse( $text, &$output, $limit = false, $offset = 1 ) {
if ( false === $limit ) {
@ -1383,6 +1385,8 @@ SQL;
* @return string Integer
*/
private function bigintFromLockName( $lockName ) {
return Wikimedia\base_convert( substr( sha1( $lockName ), 0, 15 ), 16, 10 );
return \Wikimedia\base_convert( substr( sha1( $lockName ), 0, 15 ), 16, 10 );
}
}
class_alias( DatabasePostgres::class, 'DatabasePostgres' );

View file

@ -21,9 +21,18 @@
* @file
* @ingroup Database
*/
use Wikimedia\Rdbms\Blob;
use Wikimedia\Rdbms\SQLiteField;
use Wikimedia\Rdbms\ResultWrapper;
namespace Wikimedia\Rdbms;
use PDO;
use PDOException;
use LockManager;
use FSLockManager;
use DBConnectionError;
use DBReadOnlyError;
use InvalidArgumentException;
use RuntimeException;
use DBError;
use stdClass;
/**
* @ingroup Database
@ -116,8 +125,10 @@ class DatabaseSqlite extends Database {
$p['dbFilePath'] = $filename;
$p['schema'] = false;
$p['tablePrefix'] = '';
/** @var DatabaseSqlite $db */
$db = Database::factory( 'sqlite', $p );
return Database::factory( 'sqlite', $p );
return $db;
}
/**
@ -1048,3 +1059,6 @@ class DatabaseSqlite extends Database {
return 'SQLite ' . (string)$this->mConn->getAttribute( PDO::ATTR_SERVER_VERSION );
}
}
class_alias( DatabaseSqlite::class, 'DatabaseSqlite' );

View file

@ -1808,4 +1808,4 @@ interface IDatabase {
public function setTableAliases( array $aliases );
}
class_alias( 'Wikimedia\Rdbms\IDatabase', 'IDatabase' );
class_alias( IDatabase::class, 'IDatabase' );

View file

@ -279,4 +279,4 @@ interface IMaintainableDatabase extends IDatabase {
public function unlockTables( $method );
}
class_alias( 'Wikimedia\Rdbms\IMaintainableDatabase', 'IMaintainableDatabase' );
class_alias( IMaintainableDatabase::class, 'IMaintainableDatabase' );

View file

@ -82,4 +82,4 @@ class MaintainableDBConnRef extends DBConnRef implements IMaintainableDatabase {
}
}
class_alias( 'Wikimedia\Rdbms\MaintainableDBConnRef', 'MaintainableDBConnRef' );
class_alias( MaintainableDBConnRef::class, 'MaintainableDBConnRef' );

View file

@ -18,6 +18,9 @@
* @file
* @ingroup Database
*/
namespace Wikimedia\Rdbms;
use Psr\Log\LoggerInterface;
/**

View file

@ -18,6 +18,7 @@
* @file
* @ingroup Database
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
/**

View file

@ -2,8 +2,6 @@
namespace Wikimedia\Rdbms;
use DatabasePostgres;
class PostgresField implements Field {
private $name, $tablename, $type, $nullable, $max_length, $deferred, $deferrable, $conname,
$has_default, $default;

View file

@ -23,7 +23,6 @@
*/
namespace Wikimedia\Rdbms;
use Database;
use DBError;
use DBAccessError;
use DBTransactionError;

View file

@ -25,7 +25,6 @@ namespace Wikimedia\Rdbms;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use Wikimedia\ScopedCallback;
use Database;
use BagOStuff;
use EmptyBagOStuff;
use WANObjectCache;
@ -49,7 +48,7 @@ use Exception;
class LoadBalancer implements ILoadBalancer {
/** @var array[] Map of (server index => server config array) */
private $mServers;
/** @var \Database[][][] Map of local/foreignUsed/foreignFree => server index => IDatabase array */
/** @var Database[][][] Map of local/foreignUsed/foreignFree => server index => IDatabase array */
private $mConns;
/** @var float[] Map of (server index => weight) */
private $mLoads;
@ -87,7 +86,7 @@ class LoadBalancer implements ILoadBalancer {
/** @var LoggerInterface */
protected $perfLogger;
/** @var \Database Database connection that caused a problem */
/** @var Database DB connection object that caused a problem */
private $errorConnection;
/** @var integer The generic (not query grouped) replica DB index (of $mServers) */
private $mReadIndex;

View file

@ -21,6 +21,7 @@
* @ingroup Cache
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
use \MediaWiki\MediaWikiServices;
use \Wikimedia\WaitConditionLoop;

View file

@ -22,6 +22,7 @@
* @author Roan Kattouw
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
/**

View file

@ -19,6 +19,7 @@
*/
use MediaWiki\Session\BotPasswordSessionProvider;
use Wikimedia\Rdbms\IMaintainableDatabase;
/**
* Utility class for bot passwords
@ -68,7 +69,7 @@ class BotPassword implements IDBAccessObject {
/**
* Get a database connection for the bot passwords database
* @param int $db Index of the connection to get, e.g. DB_MASTER or DB_REPLICA.
* @return Database
* @return IMaintainableDatabase
*/
public static function getDB( $db ) {
global $wgBotPasswordsCluster, $wgBotPasswordsDatabase;

View file

@ -27,6 +27,7 @@ use MediaWiki\Auth\AuthManager;
use MediaWiki\Auth\AuthenticationResponse;
use MediaWiki\Auth\AuthenticationRequest;
use Wikimedia\ScopedCallback;
use Wikimedia\Rdbms\Database;
/**
* String Some punctuation to prevent editing from broken text-mangling proxies.

View file

@ -28,6 +28,7 @@
require_once __DIR__ . '/Maintenance.php';
use Wikimedia\Rdbms\IMaintainableDatabase;
use Wikimedia\Rdbms\DatabaseSqlite;
/**
* Maintenance script that rebuilds search index table from scratch.

View file

@ -21,6 +21,8 @@
* @ingroup Maintenance
*/
use Wikimedia\Rdbms\DatabaseSqlite;
/**
* This class contains code common to different SQLite-related maintenance scripts
*

View file

@ -28,6 +28,7 @@
use Wikimedia\Rdbms\TransactionProfiler;
use Wikimedia\Rdbms\DatabaseDomain;
use Wikimedia\Rdbms\MySQLMasterPos;
use Wikimedia\Rdbms\DatabaseMysqlBase;
/**
* Fake class around abstract class so we can call concrete methods.

View file

@ -1,6 +1,8 @@
<?php
use Wikimedia\Rdbms\Blob;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\DatabaseSqlite;
class DatabaseSqliteMock extends DatabaseSqlite {
private $lastQuery;