Move Database and subclasses to Rdbms namespace
Change-Id: I52bef87512f9ddd155d1f4cc0052f6b7a0db5b42
This commit is contained in:
parent
8e7482e32f
commit
d735dc562d
59 changed files with 171 additions and 58 deletions
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
* @file
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use MediaWiki\MediaWikiServices;
|
||||
|
||||
|
|
|
|||
|
|
@ -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 );
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
* @file
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use MediaWiki\Linker\LinkTarget;
|
||||
use MediaWiki\MediaWikiServices;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
* @file
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
* @file
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use MediaWiki\Linker\LinkTarget;
|
||||
use MediaWiki\Interwiki\InterwikiLookup;
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
*/
|
||||
|
||||
use MediaWiki\MediaWikiServices;
|
||||
use Wikimedia\Rdbms\Database;
|
||||
|
||||
/**
|
||||
* Displays information about a page.
|
||||
|
|
|
|||
|
|
@ -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 ) ) {
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
*/
|
||||
|
||||
use MediaWiki\MediaWikiServices;
|
||||
use Wikimedia\Rdbms\Database;
|
||||
|
||||
/**
|
||||
* @ingroup API
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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 ) ) {
|
||||
|
|
|
|||
|
|
@ -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 );
|
||||
|
|
|
|||
2
includes/cache/BacklinkCache.php
vendored
2
includes/cache/BacklinkCache.php
vendored
|
|
@ -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 ) ) {
|
||||
|
|
|
|||
2
includes/cache/LinkCache.php
vendored
2
includes/cache/LinkCache.php
vendored
|
|
@ -20,6 +20,8 @@
|
|||
* @file
|
||||
* @ingroup Cache
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use MediaWiki\Linker\LinkTarget;
|
||||
use MediaWiki\MediaWikiServices;
|
||||
|
|
|
|||
1
includes/cache/MessageBlobStore.php
vendored
1
includes/cache/MessageBlobStore.php
vendored
|
|
@ -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.
|
||||
|
|
|
|||
1
includes/cache/MessageCache.php
vendored
1
includes/cache/MessageCache.php
vendored
|
|
@ -23,6 +23,7 @@
|
|||
use MediaWiki\MediaWikiServices;
|
||||
use Wikimedia\ScopedCallback;
|
||||
use MediaWiki\Logger\LoggerFactory;
|
||||
use Wikimedia\Rdbms\Database;
|
||||
|
||||
/**
|
||||
* MediaWiki message cache structure version.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\LoadBalancer;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@
|
|||
* @file
|
||||
* @ingroup Database
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\Blob;
|
||||
use Wikimedia\Rdbms\ResultWrapper;
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
* @ingroup FileRepo
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
*/
|
||||
|
||||
use Wikimedia\Rdbms\ResultWrapper;
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -21,7 +21,8 @@
|
|||
* @ingroup FileAbstraction
|
||||
*/
|
||||
|
||||
use \MediaWiki\Logger\LoggerFactory;
|
||||
use MediaWiki\Logger\LoggerFactory;
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
* @ingroup Deployment
|
||||
*/
|
||||
use Wikimedia\Rdbms\LBFactorySingle;
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
* @file
|
||||
* @ingroup Deployment
|
||||
*/
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use MediaWiki\MediaWikiServices;
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
* @ingroup Deployment
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
|
||||
/**
|
||||
* Class for setting up the MediaWiki database using Microsoft SQL Server.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
* @ingroup Deployment
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\DatabaseMssql;
|
||||
|
||||
/**
|
||||
* Class for setting up the MediaWiki database using Microsoft SQL Server.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
* @ingroup Deployment
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
|
||||
/**
|
||||
* Class for setting up the MediaWiki database using MySQL.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
* @ingroup Deployment
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
|
||||
/**
|
||||
* Class for setting up the MediaWiki database using Postgres.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
* @ingroup Deployment
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\DatabasePostgres;
|
||||
|
||||
/**
|
||||
* Class for handling updates to Postgres databases.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@
|
|||
* @ingroup Deployment
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\DatabaseSqlite;
|
||||
|
||||
/**
|
||||
* Class for setting up the MediaWiki database using SQLLite.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
* @ingroup Deployment
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\DatabaseSqlite;
|
||||
|
||||
/**
|
||||
* Class for handling updates to Sqlite databases.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
* @ingroup LockManager
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace Wikimedia\Rdbms;
|
||||
|
||||
use Database;
|
||||
use InvalidArgumentException;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
namespace Wikimedia\Rdbms;
|
||||
|
||||
use Database;
|
||||
|
||||
/**
|
||||
* Database connection manager.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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' );
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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' );
|
||||
|
|
|
|||
|
|
@ -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' );
|
||||
|
|
|
|||
|
|
@ -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' );
|
||||
|
|
|
|||
|
|
@ -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' );
|
||||
|
|
|
|||
|
|
@ -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' );
|
||||
|
|
|
|||
|
|
@ -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' );
|
||||
|
||||
|
|
|
|||
|
|
@ -1808,4 +1808,4 @@ interface IDatabase {
|
|||
public function setTableAliases( array $aliases );
|
||||
}
|
||||
|
||||
class_alias( 'Wikimedia\Rdbms\IDatabase', 'IDatabase' );
|
||||
class_alias( IDatabase::class, 'IDatabase' );
|
||||
|
|
|
|||
|
|
@ -279,4 +279,4 @@ interface IMaintainableDatabase extends IDatabase {
|
|||
public function unlockTables( $method );
|
||||
}
|
||||
|
||||
class_alias( 'Wikimedia\Rdbms\IMaintainableDatabase', 'IMaintainableDatabase' );
|
||||
class_alias( IMaintainableDatabase::class, 'IMaintainableDatabase' );
|
||||
|
|
|
|||
|
|
@ -82,4 +82,4 @@ class MaintainableDBConnRef extends DBConnRef implements IMaintainableDatabase {
|
|||
}
|
||||
}
|
||||
|
||||
class_alias( 'Wikimedia\Rdbms\MaintainableDBConnRef', 'MaintainableDBConnRef' );
|
||||
class_alias( MaintainableDBConnRef::class, 'MaintainableDBConnRef' );
|
||||
|
|
|
|||
|
|
@ -18,6 +18,9 @@
|
|||
* @file
|
||||
* @ingroup Database
|
||||
*/
|
||||
|
||||
namespace Wikimedia\Rdbms;
|
||||
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
* @file
|
||||
* @ingroup Database
|
||||
*/
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
*/
|
||||
namespace Wikimedia\Rdbms;
|
||||
|
||||
use Database;
|
||||
use DBError;
|
||||
use DBAccessError;
|
||||
use DBTransactionError;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
* @ingroup Cache
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use \MediaWiki\MediaWikiServices;
|
||||
use \Wikimedia\WaitConditionLoop;
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
* @author Roan Kattouw
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
* @ingroup Maintenance
|
||||
*/
|
||||
|
||||
use Wikimedia\Rdbms\DatabaseSqlite;
|
||||
|
||||
/**
|
||||
* This class contains code common to different SQLite-related maintenance scripts
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
use Wikimedia\Rdbms\Blob;
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\DatabaseSqlite;
|
||||
|
||||
class DatabaseSqliteMock extends DatabaseSqlite {
|
||||
private $lastQuery;
|
||||
|
|
|
|||
Loading…
Reference in a new issue