projects
/
fa-stable.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Updated gettext template.
[fa-stable.git]
/
includes
/
db
/
sql_functions.inc
diff --git
a/includes/db/sql_functions.inc
b/includes/db/sql_functions.inc
index 0fa479dc2b946754157a383025bd3ef93d70e234..85a25137df35b6b0997766b38bd4781421366f18 100644
(file)
--- a/
includes/db/sql_functions.inc
+++ b/
includes/db/sql_functions.inc
@@
-12,21
+12,44
@@
//
// General database functions common for all modules.
//
//
// General database functions common for all modules.
//
-//-------------------------------------------------------------------
+//-------------------------------------------------------------------
+// Multilevel transaction control.
+//
+
function begin_transaction()
{
function begin_transaction()
{
- db_query("BEGIN", "could not start a transaction");
+ global $transaction_level; // set in set_global_connection()
+
+ if (!$transaction_level) {
+ db_query("BEGIN", "could not start a transaction");
+ }
+ $transaction_level++;
}
function commit_transaction()
{
}
function commit_transaction()
{
- db_query("COMMIT", "could not commit a transaction");
+ global $transaction_level;
+
+ $transaction_level--;
+
+ if (!$transaction_level) {
+ db_query("COMMIT", "could not commit a transaction");
+ }
}
}
+/*
+ This function is called on end of script execution to cancel
+ all aborted transactions (if any)
+*/
function cancel_transaction()
{
function cancel_transaction()
{
- db_query("ROLLBACK", "could not cancel a transaction");
+ global $transaction_level;
+
+ if ($transaction_level) {
+ db_query("ROLLBACK", "could not cancel a transaction");
+ }
}
}
+
//-----------------------------------------------------------------------------
// Update record activity status.
//
//-----------------------------------------------------------------------------
// Update record activity status.
//