From d74306729631ead14323638108e3dcdf5f926517 Mon Sep 17 00:00:00 2001 From: webchick Date: Sat, 31 Dec 2011 16:09:02 -0800 Subject: Issue follow-up #1007830 by Damien Tournoud, basic: Fixed Nested transactions throw exceptions when they got out of scope. --- includes/database/mysql/database.inc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'includes/database/mysql') diff --git a/includes/database/mysql/database.inc b/includes/database/mysql/database.inc index a57f7dd02..e024a7f39 100644 --- a/includes/database/mysql/database.inc +++ b/includes/database/mysql/database.inc @@ -183,8 +183,11 @@ class DatabaseConnection_mysql extends DatabaseConnection { // succeed for MySQL error code 1305 ("SAVEPOINT does not exist"). if ($e->errorInfo[1] == '1305') { // If one SAVEPOINT was released automatically, then all were. - // Therefore, we keep just the topmost transaction. - $this->transactionLayers = array('drupal_transaction' => 'drupal_transaction'); + // Therefore, clean the transaction stack. + $this->transactionLayers = array(); + // We also have to explain to PDO that the transaction stack has + // been cleaned-up. + PDO::commit(); } else { throw $e; -- cgit v1.2.3