aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/appframework/db/db.php9
-rw-r--r--lib/private/db/connection.php10
-rw-r--r--lib/public/idbconnection.php8
3 files changed, 27 insertions, 0 deletions
diff --git a/lib/private/appframework/db/db.php b/lib/private/appframework/db/db.php
index cde85831687..8e3fa6e4197 100644
--- a/lib/private/appframework/db/db.php
+++ b/lib/private/appframework/db/db.php
@@ -154,6 +154,15 @@ class Db implements IDb {
}
/**
+ * Check if a transaction is active
+ *
+ * @return bool
+ */
+ public function inTransaction() {
+ return $this->connection->inTransaction();
+ }
+
+ /**
* Commit the database changes done during a transaction that is in progress
*/
public function commit() {
diff --git a/lib/private/db/connection.php b/lib/private/db/connection.php
index def3f2fd120..4d33cd968af 100644
--- a/lib/private/db/connection.php
+++ b/lib/private/db/connection.php
@@ -291,4 +291,14 @@ class Connection extends \Doctrine\DBAL\Connection implements IDBConnection {
protected function replaceTablePrefix($statement) {
return str_replace( '*PREFIX*', $this->tablePrefix, $statement );
}
+
+ /**
+ * Check if a transaction is active
+ *
+ * @return bool
+ * @since 8.2.0
+ */
+ public function inTransaction() {
+ return $this->getTransactionNestingLevel() > 0;
+ }
}
diff --git a/lib/public/idbconnection.php b/lib/public/idbconnection.php
index 0d04c43d73e..6a4373583fa 100644
--- a/lib/public/idbconnection.php
+++ b/lib/public/idbconnection.php
@@ -115,6 +115,14 @@ interface IDBConnection {
public function beginTransaction();
/**
+ * Check if a transaction is active
+ *
+ * @return bool
+ * @since 8.2.0
+ */
+ public function inTransaction();
+
+ /**
* Commit the database changes done during a transaction that is in progress
* @since 6.0.0
*/