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

roman.habibov1 at yandex.ru roman.habibov1 at yandex.ru
Tue Sep 11 03:25:17 MSK 2018


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