You are here

public function Connection::popTransaction in Drupal driver for SQL Server and SQL Azure 8

Same name and namespace in other branches
  1. 8.2 drivers/lib/Drupal/Driver/Database/sqlsrv/Connection.php \Drupal\Driver\Database\sqlsrv\Connection::popTransaction()

Decreases the depth of transaction nesting.

If we pop off the last transaction layer, then we either commit or roll back the transaction as necessary. If no transaction is active, we return because the transaction may have manually been rolled back.

Parameters

$name: The name of the savepoint

Throws

DatabaseTransactionNoActiveException

DatabaseTransactionCommitFailedException

Overrides Connection::popTransaction

See also

DatabaseTransaction

File

drivers/lib/Drupal/Driver/Database/sqlsrv/Connection.php, line 948
Definition of Drupal\Driver\Database\sqlsrv\Connection

Class

Connection
Temporary tables: temporary table support is done by means of global temporary tables (#) to avoid the use of DIRECT QUERIES. You can enable and disable the use of direct queries with $this->driver_settings->defaultDirectQuery =…

Namespace

Drupal\Driver\Database\sqlsrv

Code

public function popTransaction($name) {
  if (!$this
    ->supportsTransactions()) {
    return;
  }

  // The transaction has already been committed earlier. There is nothing we
  // need to do. If this transaction was part of an earlier out-of-order
  // rollback, an exception would already have been thrown by
  // Database::rollback().
  if (!isset($this->transactionLayers[$name])) {
    return;
  }

  // Mark this layer as committable.
  $this->transactionLayers[$name]['active'] = FALSE;
  $this
    ->popCommittableTransactions();
}