X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fdeferred%2FSqlDataUpdate.php;h=2411beff8950cf3b241b0a06bb54ddac3c8626c1;hp=ff06915a7729e24497c336ab7c66deedae9bd148;hb=d5a7166771613dfe4ed9fb75fa5efeced6134bd1;hpb=2a26e0de27ca0b4bf2538bfa91327f1236553ee5 diff --git a/includes/deferred/SqlDataUpdate.php b/includes/deferred/SqlDataUpdate.php index ff06915a77..2411beff89 100644 --- a/includes/deferred/SqlDataUpdate.php +++ b/includes/deferred/SqlDataUpdate.php @@ -21,81 +21,20 @@ * @file */ +use Wikimedia\Rdbms\IDatabase; + /** - * Abstract base class for update jobs that put some secondary data extracted - * from article content into the database. - * - * @note subclasses should NOT start or commit transactions in their doUpdate() method, - * a transaction will automatically be wrapped around the update. Starting another - * one would break the outer transaction bracket. If need be, subclasses can override - * the beginTransaction() and commitTransaction() methods. + * @deprecated Since 1.28 Use DataUpdate directly, injecting the database */ abstract class SqlDataUpdate extends DataUpdate { /** @var IDatabase Database connection reference */ protected $mDb; - /** @var array SELECT options to be used (array) */ protected $mOptions = []; - /** @var bool Whether a transaction is open on this object (internal use only!) */ - private $mHasTransaction; - - /** @var bool Whether this update should be wrapped in a transaction */ - protected $mUseTransaction; - - /** - * Constructor - * - * @param bool $withTransaction Whether this update should be wrapped in a - * transaction (default: true). A transaction is only started if no - * transaction is already in progress, see beginTransaction() for details. - */ - public function __construct( $withTransaction = true ) { + public function __construct() { parent::__construct(); $this->mDb = wfGetLB()->getLazyConnectionRef( DB_MASTER ); - - $this->mWithTransaction = $withTransaction; - $this->mHasTransaction = false; - } - - /** - * Begin a database transaction, if $withTransaction was given as true in - * the constructor for this SqlDataUpdate. - * - * Because nested transactions are not supported by the Database class, - * this implementation checks Database::trxLevel() and only opens a - * transaction if none is already active. - */ - public function beginTransaction() { - if ( !$this->mWithTransaction ) { - return; - } - - // NOTE: nested transactions are not supported, only start a transaction if none is open - if ( $this->mDb->trxLevel() === 0 ) { - $this->mDb->begin( get_class( $this ) . '::beginTransaction' ); - $this->mHasTransaction = true; - } - } - - /** - * Commit the database transaction started via beginTransaction (if any). - */ - public function commitTransaction() { - if ( $this->mHasTransaction ) { - $this->mDb->commit( get_class( $this ) . '::commitTransaction' ); - $this->mHasTransaction = false; - } - } - - /** - * Abort the database transaction started via beginTransaction (if any). - */ - public function abortTransaction() { - if ( $this->mHasTransaction ) { // XXX: actually... maybe always? - $this->mDb->rollback( get_class( $this ) . '::abortTransaction' ); - $this->mHasTransaction = false; - } } }