DatabaseConnection::popTransaction

7 database.inc public DatabaseConnection::popTransaction($name)

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.

@throws DatabaseTransactionCommitFailedException

Parameters

$name: The name of the savepoint

Throws

DatabaseTransactionNoActiveException

See also

DatabaseTransaction

File

includes/database/database.inc, line 1095
Core systems for the database layer.

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] = FALSE;
  $this->popCommittableTransactions();
}
Login or register to post comments