- Patch #517502 by Crell: make transaction API follow its own documentation.

merge-requests/26/head
Dries Buytaert 2009-07-13 07:27:15 +00:00
parent 6dc5b5449d
commit 6682ab936c
2 changed files with 24 additions and 7 deletions

View File

@ -225,7 +225,7 @@ abstract class DatabaseConnection extends PDO {
* *
* @var boolean * @var boolean
*/ */
protected $willRollBack; protected $willRollback;
/** /**
* The name of the Select class for this connection. * The name of the Select class for this connection.
@ -849,12 +849,12 @@ abstract class DatabaseConnection extends PDO {
* *
* This method throws an exception if no transaction is active. * This method throws an exception if no transaction is active.
*/ */
public function rollBack() { public function rollback() {
if ($this->transactionLayers == 0) { if ($this->transactionLayers == 0) {
throw new NoActiveTransactionException(); throw new NoActiveTransactionException();
} }
$this->willRollBack = TRUE; $this->willRollback = TRUE;
} }
/** /**
@ -867,12 +867,12 @@ abstract class DatabaseConnection extends PDO {
* @return * @return
* TRUE if the transaction will roll back, FALSE otherwise. * TRUE if the transaction will roll back, FALSE otherwise.
*/ */
public function willRollBack() { public function willRollback() {
if ($this->transactionLayers == 0) { if ($this->transactionLayers == 0) {
throw new NoActiveTransactionException(); throw new NoActiveTransactionException();
} }
return $this->willRollBack; return $this->willRollback;
} }
/** /**
@ -1448,6 +1448,23 @@ class DatabaseTransaction {
$this->connection->popTransaction(); $this->connection->popTransaction();
} }
/**
* Roll back the current transaction.
*
* This is just a wrapper method to rollback whatever transaction stack we
* are currently in, which is managed by the connection object itself.
*/
public function rollback() {
$this->connection->rollback();
}
/**
* Determine if this transaction will roll back.
*/
public function willRollback() {
return $this->connection->willRollback();
}
} }
/** /**

View File

@ -2624,8 +2624,8 @@ class DatabaseTransactionTestCase extends DatabaseTestCase {
if ($rollback) { if ($rollback) {
// Roll back the transaction, if requested. // Roll back the transaction, if requested.
// This rollback should propagate to the the outer transaction, if present. // This rollback should propagate to the the outer transaction, if present.
$connection->rollBack(); $txn->rollback();
$this->assertTrue($connection->willRollBack(), t('Transaction is scheduled to roll back after calling rollBack().')); $this->assertTrue($txn->willRollback(), t('Transaction is scheduled to roll back after calling rollback().'));
} }
} }