[tarantool-patches] Re: [PATCH] box: add a method to check if transaction is open

Kirill Shcherbatov kshcherbatov at tarantool.org
Tue Sep 11 14:51:19 MSK 2018


Now LGTM. Sasha, please, take a look.

On 11.09.2018 03:25, roman.habibov1 at yandex.ru wrote:
> Forgot. Thanks for review!
> 
> 11.09.2018, 03:23, "roman.habibov1 at yandex.ru" <roman.habibov1 at yandex.ru>:
>> 10.09.2018, 09:21, "Kirill Shcherbatov" <kshcherbatov at tarantool.org>:
>>>  Hi! Thank you for a patch.
>>>>   +bool
>>>>   +box_is_in_txn()
>>>>   +{
>>>>   + return box_txn();
>>>>   +}
>>>
>>>  1. Your function box_is_in_txn is a copy of box_txn routine. There is not reason to introduce it.
>>>  Moreover, box_txn is already exported as public API.
>>
>> Indeed. Removed.
>>
>>>>   +- - true
>>>>   +...
>>>>   +-- close transaction
>>>>   +box.commit();
>>>
>>>  2. Check box.is_in_txn(); here please.
>>
>> Redone.
>>
>>>>   +-- gh-3518 no active transaction - false
>>>
>>>  3. Use tarantool codestyle for comments; at first, you need ticket description
>>>  --
>>>  -- gh-3518: Check if transaction opened.
>>>  --
>>>>   +box.is_in_txn();
>>>>   +-- start transaction
>>
>> Done.
>>
>>>  4. With a capital letter and with a dot at the end, please. Same for other comments.
>>
>> Sorry.
>>
>> commit 14fa90d195dc84df21a41c3172d2f0a2e0ca68e2
>> 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..85e87ef 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..25bdae5 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()
>> diff --git a/test/engine/savepoint.result b/test/engine/savepoint.result
>> index a62a2e1..00d281b 100644
>> --- a/test/engine/savepoint.result
>> +++ b/test/engine/savepoint.result
>> @@ -14,7 +14,7 @@ s1 = box.savepoint()
>>  ...
>>  box.rollback_to_savepoint(s1)
>>  ---
>> -- error: 'builtin/box/schema.lua:340: Usage: box.rollback_to_savepoint(savepoint)'
>> +- error: 'builtin/box/schema.lua:346: Usage: box.rollback_to_savepoint(savepoint)'
>>  ...
>>  box.begin() s1 = box.savepoint()
>>  ---
>> @@ -323,27 +323,27 @@ test_run:cmd("setopt delimiter ''");
>>  ok1, errmsg1
>>  ---
>>  - false
>> -- 'builtin/box/schema.lua:340: Usage: box.rollback_to_savepoint(savepoint)'
>> +- 'builtin/box/schema.lua:346: Usage: box.rollback_to_savepoint(savepoint)'
>>  ...
>>  ok2, errmsg2
>>  ---
>>  - false
>> -- 'builtin/box/schema.lua:340: Usage: box.rollback_to_savepoint(savepoint)'
>> +- 'builtin/box/schema.lua:346: Usage: box.rollback_to_savepoint(savepoint)'
>>  ...
>>  ok3, errmsg3
>>  ---
>>  - false
>> -- 'builtin/box/schema.lua:340: Usage: box.rollback_to_savepoint(savepoint)'
>> +- 'builtin/box/schema.lua:346: Usage: box.rollback_to_savepoint(savepoint)'
>>  ...
>>  ok4, errmsg4
>>  ---
>>  - false
>> -- 'builtin/box/schema.lua:340: Usage: box.rollback_to_savepoint(savepoint)'
>> +- 'builtin/box/schema.lua:346: Usage: box.rollback_to_savepoint(savepoint)'
>>  ...
>>  ok5, errmsg5
>>  ---
>>  - false
>> -- 'builtin/box/schema.lua:340: Usage: box.rollback_to_savepoint(savepoint)'
>> +- 'builtin/box/schema.lua:346: Usage: box.rollback_to_savepoint(savepoint)'
>>  ...
>>  s:select{}
>>  ---
> 
> 




More information about the Tarantool-patches mailing list