From bf75fdb72fb1a804d0fd733172acbf54e097c83b Mon Sep 17 00:00:00 2001 From: BananaMasterz <45745548+BananaMasterz@users.noreply.github.com> Date: Tue, 18 Jul 2023 22:26:19 +0300 Subject: [PATCH] added support for MariaDB nested transactions --- drift/lib/src/runtime/executor/helpers/engines.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drift/lib/src/runtime/executor/helpers/engines.dart b/drift/lib/src/runtime/executor/helpers/engines.dart index 39ba7de7..f1e9bb74 100644 --- a/drift/lib/src/runtime/executor/helpers/engines.dart +++ b/drift/lib/src/runtime/executor/helpers/engines.dart @@ -188,8 +188,10 @@ class _StatementBasedTransactionExecutor extends _TransactionExecutor { _StatementBasedTransactionExecutor this._parent, int depth) : _delegate = _parent._delegate, _startCommand = 'SAVEPOINT s$depth', - _commitCommand = 'RELEASE s$depth', - _rollbackCommand = 'ROLLBACK TO s$depth', + _commitCommand = _parent._db.dialect == SqlDialect.mariadb + ? 'RELEASE SAVEPOINT s$depth' : 'RELEASE s$depth', + _rollbackCommand = _parent._db.dialect == SqlDialect.mariadb + ? 'ROLLBACK TO SAVEPOINT s$depth' : 'ROLLBACK TO s$depth', super(_parent._db); @override