[tarantool-patches] Re: [PATCH 1/1] box: add a method to check if transaction is open
roman.habibov1 at yandex.ru
roman.habibov1 at yandex.ru
Fri Sep 21 03:54:37 MSK 2018
Hi! Thanks for review.
> Why do you return a table with boolean, but not boolean?
Fixed.
> It is better to use output filtering feature of test-run to avoid such
> redundant diffs.
>
> Consider test/app/socket.test.lua:
>
> ```
> 12 env = require('test_run')
> 13 test_run = env.new()
> 14 test_run:cmd("push filter '(error: .builtin/.*[.]lua):[0-9]+' to '\\1'")
> ```
>
> It is not a blocker for that patch, but if you intend to include it, do
> it in the separate commit before 'add a method to check if txn is open'.
I added a separate commit.
commit e613be2ef5f12e43ae4a346c4b30e87940ade661
Author: Roman Khabibov <roman.habibov1 at yandex.ru>
Date: Fri Sep 7 02:54:28 2018 +0300
box: add a method to check if txn is open
Closes: #3518.
diff --git a/src/box/lua/schema.lua b/src/box/lua/schema.lua
index 74b7064..e2a5635 100644
--- a/src/box/lua/schema.lua
+++ b/src/box/lua/schema.lua
@@ -64,6 +64,8 @@ ffi.cdef[[
const char *key, const char *key_end);
/** \endcond public */
/** \cond public */
+ bool
+ box_txn();
int64_t
box_txn_id();
int
@@ -321,6 +323,10 @@ box.begin = function()
end
end
+box.is_in_txn = function()
+ return builtin.box_txn()
+end
+
box.savepoint = function()
local csavepoint = builtin.box_txn_savepoint()
if csavepoint == nil then
diff --git a/test/box/misc.result b/test/box/misc.result
index d9f8d4e..325af3b 100644
--- a/test/box/misc.result
+++ b/test/box/misc.result
@@ -67,6 +67,7 @@ t
- index
- info
- internal
+ - is_in_txn
- on_commit
- on_rollback
- once
diff --git a/test/box/transaction.result b/test/box/transaction.result
index e024084..8a4d11d 100644
--- a/test/box/transaction.result
+++ b/test/box/transaction.result
@@ -43,6 +43,30 @@ box.begin() box.rollback();
box.commit();
---
...
+--
+-- gh-3518: Add is_in_txn().
+--
+-- no active transaction - false
+box.is_in_txn();
+---
+- false
+...
+-- active transaction - true
+box.begin();
+---
+...
+box.is_in_txn();
+---
+- true
+...
+-- no active transaction - false
+box.commit();
+---
+...
+box.is_in_txn();
+---
+- false
+...
fiber = require('fiber');
---
...
diff --git a/test/box/transaction.test.lua b/test/box/transaction.test.lua
index e1d258e..8f7dfed 100644
--- a/test/box/transaction.test.lua
+++ b/test/box/transaction.test.lua
@@ -19,6 +19,19 @@ box.begin() box.rollback() box.rollback();
box.begin() box.rollback();
-- no current transaction - implicit begin
box.commit();
+
+--
+-- gh-3518: Add is_in_txn().
+--
+-- no active transaction - false
+box.is_in_txn();
+-- active transaction - true
+box.begin();
+box.is_in_txn();
+-- no active transaction - false
+box.commit();
+box.is_in_txn();
+
fiber = require('fiber');
function sloppy()
box.begin()
More information about the Tarantool-patches
mailing list