Move DB errors to Rdbms namespace

Change-Id: I463bd86123501abc68fdb78b4cda6110f7af2549
This commit is contained in:
Aaron Schulz 2017-02-24 08:17:16 -08:00
parent 415a8de97d
commit dd359741cc
59 changed files with 116 additions and 50 deletions

View file

@ -1594,8 +1594,18 @@ $wgAutoloadLocalClasses = [
'Wikimedia\\Rdbms\\Blob' => __DIR__ . '/includes/libs/rdbms/encasing/Blob.php',
'Wikimedia\\Rdbms\\ChronologyProtector' => __DIR__ . '/includes/libs/rdbms/ChronologyProtector.php',
'Wikimedia\\Rdbms\\ConnectionManager' => __DIR__ . '/includes/libs/rdbms/connectionmanager/ConnectionManager.php',
'Wikimedia\\Rdbms\\DBAccessError' => __DIR__ . '/includes/libs/rdbms/exception/DBAccessError.php',
'Wikimedia\\Rdbms\\DBConnRef' => __DIR__ . '/includes/libs/rdbms/database/DBConnRef.php',
'Wikimedia\\Rdbms\\DBConnectionError' => __DIR__ . '/includes/libs/rdbms/exception/DBConnectionError.php',
'Wikimedia\\Rdbms\\DBError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php',
'Wikimedia\\Rdbms\\DBExpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBExpectedError.php',
'Wikimedia\\Rdbms\\DBMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/DBMasterPos.php',
'Wikimedia\\Rdbms\\DBQueryError' => __DIR__ . '/includes/libs/rdbms/exception/DBQueryError.php',
'Wikimedia\\Rdbms\\DBReadOnlyError' => __DIR__ . '/includes/libs/rdbms/exception/DBReadOnlyError.php',
'Wikimedia\\Rdbms\\DBReplicationWaitError' => __DIR__ . '/includes/libs/rdbms/exception/DBReplicationWaitError.php',
'Wikimedia\\Rdbms\\DBTransactionError' => __DIR__ . '/includes/libs/rdbms/exception/DBTransactionError.php',
'Wikimedia\\Rdbms\\DBTransactionSizeError' => __DIR__ . '/includes/libs/rdbms/exception/DBTransactionSizeError.php',
'Wikimedia\\Rdbms\\DBUnexpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBUnexpectedError.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',

View file

@ -28,6 +28,7 @@ use Liuggio\StatsdClient\Sender\SocketSender;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\Session\SessionManager;
use Wikimedia\ScopedCallback;
use Wikimedia\Rdbms\DBReplicationWaitError;
// Hide compatibility functions from Doxygen
/// @cond

View file

@ -25,6 +25,7 @@ use Psr\Log\LoggerInterface;
use MediaWiki\MediaWikiServices;
use Wikimedia\Rdbms\ChronologyProtector;
use Wikimedia\Rdbms\LBFactory;
use Wikimedia\Rdbms\DBConnectionError;
/**
* The MediaWiki class is the helper class for the index.php entry point.

View file

@ -7,6 +7,7 @@ use MediaWiki\MediaWikiServices;
use Wikimedia\Assert\Assert;
use Wikimedia\ScopedCallback;
use Wikimedia\Rdbms\LoadBalancer;
use Wikimedia\Rdbms\DBUnexpectedError;
/**
* Storage layer class for WatchedItems.

View file

@ -176,7 +176,8 @@ class ApiErrorFormatter {
} else {
$msg = new RawMessage( '$1' );
if ( !isset( $options['code'] ) ) {
$options['code'] = 'internal_api_error_' . get_class( $exception );
$class = preg_replace( '#^Wikimedia\\\Rdbms\\\#', '', get_class( $exception ) );
$options['code'] = 'internal_api_error_' . $class;
}
}
$params = [ wfEscapeWikiText( $exception->getMessage() ) ];

View file

@ -1,7 +1,5 @@
<?php
/**
*
*
* Created on Sep 4, 2006
*
* Copyright © 2006 Yuri Astrakhan "<Firstname><Lastname>@gmail.com"
@ -28,6 +26,8 @@
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MediaWikiServices;
use Wikimedia\Timestamp\TimestampException;
use Wikimedia\Rdbms\DBQueryError;
use Wikimedia\Rdbms\DBError;
/**
* This is the main API class, used for both external and internal processing.
@ -1044,7 +1044,8 @@ class ApiMain extends ApiBase {
} else {
// Something is seriously wrong
$config = $this->getConfig();
$code = 'internal_api_error_' . get_class( $e );
$class = preg_replace( '#^Wikimedia\\\Rdbms\\\#', '', get_class( $e ) );
$code = 'internal_api_error_' . $class;
if ( ( $e instanceof DBQueryError ) && !$config->get( 'ShowSQLErrors' ) ) {
$params = [ 'apierror-databaseerror', WebRequest::getRequestId() ];
} else {

View file

@ -19,6 +19,7 @@
*/
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\DBQueryError;
/**
* LCStore implementation which uses the standard DB functions to store data.

View file

@ -24,6 +24,8 @@
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\Blob;
use Wikimedia\Rdbms\ResultWrapper;
use Wikimedia\Rdbms\DBConnectionError;
use Wikimedia\Rdbms\DBUnexpectedError;
/**
* @ingroup Database

View file

@ -21,6 +21,7 @@
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MediaWikiServices;
use Psr\Log\LogLevel;
use Wikimedia\Rdbms\DBError;
/**
* Handler class for MWExceptions

View file

@ -19,6 +19,11 @@
* @author Aaron Schulz
*/
use Wikimedia\Rdbms\DBConnectionError;
use Wikimedia\Rdbms\DBError;
use Wikimedia\Rdbms\DBReadOnlyError;
use Wikimedia\Rdbms\DBExpectedError;
/**
* Class to expose exceptions to the client (API bots, users, admins using CLI scripts)
* @since 1.28

View file

@ -24,6 +24,7 @@
use MediaWiki\MediaWikiServices;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\DBError;
/**
* Version of FileJournal that logs to a DB table

View file

@ -1,6 +1,7 @@
<?php
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\DBError;
/**
* MySQL version of DBLockManager that supports shared locks.

View file

@ -21,6 +21,8 @@
* @ingroup FileAbstraction
*/
use Wikimedia\Rdbms\DBUnexpectedError;
/**
* Foreign file with an accessible MediaWiki database
*

View file

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

View file

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

View file

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

View file

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

View file

@ -23,6 +23,7 @@
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\DatabaseSqlite;
use Wikimedia\Rdbms\DBConnectionError;
/**
* Class for setting up the MediaWiki database using SQLLite.

View file

@ -21,9 +21,11 @@
* @author Aaron Schulz
*/
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\DBConnRef;
use Wikimedia\Rdbms\DBConnectionError;
use Wikimedia\Rdbms\DBError;
use MediaWiki\MediaWikiServices;
use Wikimedia\ScopedCallback;
use Wikimedia\Rdbms\DBConnRef;
/**
* Class to handle job queues stored in the DB

View file

@ -28,6 +28,8 @@ use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Wikimedia\ScopedCallback;
use Wikimedia\Rdbms\LBFactory;
use Wikimedia\Rdbms\DBError;
use Wikimedia\Rdbms\DBReplicationWaitError;
/**
* Job queue runner utility methods

View file

@ -20,6 +20,7 @@
* @ingroup JobQueue
*/
use MediaWiki\MediaWikiServices;
use Wikimedia\Rdbms\DBReplicationWaitError;
/**
* Job for pruning recent changes

View file

@ -21,6 +21,7 @@
* @ingroup JobQueue
*/
use MediaWiki\MediaWikiServices;
use Wikimedia\Rdbms\DBReplicationWaitError;
/**
* Job to update link tables for pages

View file

@ -23,6 +23,7 @@
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\DBError;
/**
* Version of LockManager based on using named/row DB locks.

View file

@ -1,4 +1,7 @@
<?php
use Wikimedia\Rdbms\DBError;
/**
* PostgreSQL version of DBLockManager that supports shared locks.
* All locks are non-blocking, which avoids deadlocks.

View file

@ -33,10 +33,6 @@ use MediaWiki;
use BagOStuff;
use HashBagOStuff;
use InvalidArgumentException;
use DBQueryError;
use DBUnexpectedError;
use DBConnectionError;
use DBReadOnlyError;
use Exception;
use RuntimeException;

View file

@ -28,9 +28,6 @@
namespace Wikimedia\Rdbms;
use MediaWiki;
use DBConnectionError;
use DBUnexpectedError;
use DBQueryError;
use Exception;
use stdClass;

View file

@ -22,8 +22,6 @@
*/
namespace Wikimedia\Rdbms;
use DBConnectionError;
/**
* Database abstraction object for PHP extension mysql.
*

View file

@ -26,10 +26,6 @@ use DateTime;
use DateTimeZone;
use MediaWiki;
use InvalidArgumentException;
use DBError;
use DBExpectedError;
use DBUnexpectedError;
use DBConnectionError;
use Exception;
use stdClass;

View file

@ -23,7 +23,6 @@
namespace Wikimedia\Rdbms;
use mysqli;
use DBConnectionError;
use IP;
/**

View file

@ -25,8 +25,6 @@ namespace Wikimedia\Rdbms;
use Wikimedia\Timestamp\ConvertibleTimestamp;
use Wikimedia\WaitConditionLoop;
use MediaWiki;
use DBUnexpectedError;
use DBConnectionError;
use Exception;
/**

View file

@ -27,11 +27,8 @@ use PDO;
use PDOException;
use LockManager;
use FSLockManager;
use DBConnectionError;
use DBReadOnlyError;
use InvalidArgumentException;
use RuntimeException;
use DBError;
use stdClass;
/**

View file

@ -26,10 +26,6 @@
namespace Wikimedia\Rdbms;
use Wikimedia\ScopedCallback;
use DBError;
use DBConnectionError;
use DBUnexpectedError;
use DBQueryError;
use Exception;
use RuntimeException;
use UnexpectedValueException;

View file

@ -26,7 +26,6 @@ namespace Wikimedia\Rdbms;
use Exception;
use RuntimeException;
use DBUnexpectedError;
/**
* Advanced database interface for IDatabase handles that include maintenance methods

View file

@ -3,7 +3,6 @@
namespace Wikimedia\Rdbms;
use Iterator;
use DBUnexpectedError;
use stdClass;
/**

View file

@ -19,6 +19,8 @@
* @ingroup Database
*/
namespace Wikimedia\Rdbms;
/**
* Exception class for attempted DB access
* @ingroup Database
@ -28,3 +30,5 @@ class DBAccessError extends DBUnexpectedError {
parent::__construct( null, "Database access has been disabled." );
}
}
class_alias( DBAccessError::class, 'DBAccessError' );

View file

@ -18,7 +18,7 @@
* @file
* @ingroup Database
*/
use Wikimedia\Rdbms\IDatabase;
namespace Wikimedia\Rdbms;
/**
* @ingroup Database
@ -37,3 +37,5 @@ class DBConnectionError extends DBExpectedError {
parent::__construct( $db, $msg );
}
}
class_alias( DBConnectionError::class, 'DBConnectionError' );

View file

@ -18,7 +18,10 @@
* @file
* @ingroup Database
*/
use Wikimedia\Rdbms\IDatabase;
namespace Wikimedia\Rdbms;
use Exception;
/**
* Database error base class
@ -38,3 +41,5 @@ class DBError extends Exception {
parent::__construct( $error );
}
}
class_alias( DBError::class, 'DBError' );

View file

@ -18,7 +18,12 @@
* @file
* @ingroup Database
*/
use Wikimedia\Rdbms\IDatabase;
namespace Wikimedia\Rdbms;
use MessageSpecifier;
use ILocalizedException;
use Message;
/**
* Base class for the more common types of database errors. These are known to occur
@ -52,3 +57,5 @@ class DBExpectedError extends DBError implements MessageSpecifier, ILocalizedExc
return Message::newFromSpecifier( $this );
}
}
class_alias( DBExpectedError::class, 'DBExpectedError' );

View file

@ -18,8 +18,8 @@
* @file
* @ingroup Database
*/
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
namespace Wikimedia\Rdbms;
/**
* @ingroup Database
@ -63,3 +63,5 @@ class DBQueryError extends DBExpectedError {
$this->fname = $fname;
}
}
class_alias( DBQueryError::class, 'DBQueryError' );

View file

@ -19,8 +19,12 @@
* @ingroup Database
*/
namespace Wikimedia\Rdbms;
/**
* @ingroup Database
*/
class DBReadOnlyError extends DBExpectedError {
}
class_alias( DBReadOnlyError::class, 'DBReadOnlyError' );

View file

@ -19,9 +19,13 @@
* @ingroup Database
*/
namespace Wikimedia\Rdbms;
/**
* Exception class for replica DB wait timeouts
* @ingroup Database
*/
class DBReplicationWaitError extends DBExpectedError {
}
class_alias( DBReplicationWaitError::class, 'DBReplicationWaitError' );

View file

@ -19,8 +19,13 @@
* @ingroup Database
*/
namespace Wikimedia\Rdbms;
/**
* @ingroup Database
*/
class DBTransactionError extends DBExpectedError {
}
class_alias( DBTransactionError::class, 'DBTransactionError' );

View file

@ -19,6 +19,8 @@
* @ingroup Database
*/
namespace Wikimedia\Rdbms;
/**
* @ingroup Database
*/
@ -27,3 +29,5 @@ class DBTransactionSizeError extends DBTransactionError {
return 'transaction-duration-limit-exceeded';
}
}
class_alias( DBTransactionSizeError::class, 'DBTransactionSizeError' );

View file

@ -19,8 +19,12 @@
* @ingroup Database
*/
namespace Wikimedia\Rdbms;
/**
* @ingroup Database
*/
class DBUnexpectedError extends DBError {
}
class_alias( DBUnexpectedError::class, 'DBUnexpectedError' );

View file

@ -24,8 +24,6 @@
namespace Wikimedia\Rdbms;
use InvalidArgumentException;
use DBTransactionError;
use DBReplicationWaitError;
/**
* An interface for generating database load balancers

View file

@ -30,8 +30,6 @@ use EmptyBagOStuff;
use WANObjectCache;
use Exception;
use RuntimeException;
use DBTransactionError;
use DBReplicationWaitError;
/**
* An interface for generating database load balancers

View file

@ -23,10 +23,6 @@
*/
namespace Wikimedia\Rdbms;
use DBError;
use DBAccessError;
use DBTransactionError;
use DBExpectedError;
use Exception;
use InvalidArgumentException;

View file

@ -29,13 +29,6 @@ use BagOStuff;
use EmptyBagOStuff;
use WANObjectCache;
use ArrayUtils;
use DBError;
use DBAccessError;
use DBExpectedError;
use DBUnexpectedError;
use DBTransactionError;
use DBTransactionSizeError;
use DBConnectionError;
use InvalidArgumentException;
use RuntimeException;
use Exception;

View file

@ -23,6 +23,9 @@
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\DBError;
use Wikimedia\Rdbms\DBQueryError;
use Wikimedia\Rdbms\DBConnectionError;
use \MediaWiki\MediaWikiServices;
use \Wikimedia\WaitConditionLoop;
use \Wikimedia\Rdbms\TransactionProfiler;

View file

@ -24,6 +24,8 @@ use \MediaWiki\Logger\LoggerFactory;
use \MediaWiki\MediaWikiServices;
use Wikimedia\Rdbms\FakeResultWrapper;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\DBError;
use Wikimedia\Rdbms\DBUnexpectedError;
/**
* Class representing a MediaWiki article and history.

View file

@ -21,6 +21,8 @@
* @ingroup Profiler
*/
use Wikimedia\Rdbms\DBError;
/**
* Logs profiling data into the local DB
*

View file

@ -27,6 +27,7 @@ use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use WrappedString\WrappedString;
use Wikimedia\Rdbms\DBConnectionError;
/**
* Dynamic JavaScript and CSS resource loading system.

View file

@ -23,6 +23,7 @@
use Wikimedia\Rdbms\ResultWrapper;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\DBError;
/**
* This is a class for doing query pages; since they're almost all the same,

View file

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

View file

@ -25,6 +25,8 @@
require_once __DIR__ . '/../includes/PHPVersionCheck.php';
wfEntryPointCheck( 'cli' );
use Wikimedia\Rdbms\DBReplicationWaitError;
/**
* @defgroup MaintenanceArchive Maintenance archives
* @ingroup Maintenance

View file

@ -19,6 +19,8 @@
* @ingroup Maintenance
*/
use Wikimedia\Rdbms\DBQueryError;
/**
* When using shared tables that are referenced by foreign keys on local
* tables you have to change the constraints on local tables.

View file

@ -26,6 +26,7 @@ require_once __DIR__ . '/Maintenance.php';
use Wikimedia\Rdbms\ResultWrapper;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\DBQueryError;
/**
* Maintenance script that sends SQL queries from the specified file to the database.

View file

@ -22,6 +22,7 @@
*/
use Wikimedia\Rdbms\DatabaseSqlite;
use Wikimedia\Rdbms\DBError;
/**
* This class contains code common to different SQLite-related maintenance scripts

View file

@ -22,6 +22,8 @@
* @see wfWaitForSlaves()
*/
use Wikimedia\Rdbms\DBConnectionError;
require __DIR__ . '/../commandLine.inc';
if ( count( $args ) < 1 ) {