[tarantool-patches] Re: [PATCH 0/4] Rework SQL transaction processing
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Mon May 7 16:31:12 MSK 2018
Hello. Thanks for review fixes! The whole patchset LGTM now.
On 03/05/2018 21:49, Nikita Pettik wrote:
> Branch: https://github.com/tarantool/tarantool/tree/np/rework-sql-transactions
> Issue:
> https://github.com/tarantool/tarantool/issues/3237
> https://github.com/tarantool/tarantool/issues/3313
> https://github.com/tarantool/tarantool/issues/3379
>
>
> This patch-set consists of several fixes related to SQL transactions.
>
> First patch provides slight refactoring of transactions processing
> in SQL: instead of using one opcode OP_AutoCommit for BEGIN, COMMIT and
> ROLLBACK handling during VDBE execution, three different opcodes are
> added. Moreover, redundant switches of auto-commit flag are removed.
> Now, it is set during VDBE creation and can be changed only by BEGIN
> statement or by DML request (since DML must be surrounded in a separate txn).
>
> Second patch is the main in series and introduces transitive
> transactions between SQL and Lua. To implement this feature,
> deferred FK counter has become attribute of transaction, and
> removed from VDBE.
>
> Last two patches fix bugs connected with SQL savepoints:
> first one led to assertion fault due to wrong assert condition;
> second one resulted in incorrect processing of RELEASE
> statement due to obsolete SQLite code.
>
> Nikita Pettik (4):
> sql: remove OP_AutoCommit opcode
> sql: allow transitive Lua <-> SQL transactions
> sql: allow SAVEPOINT statement outside transaction
> sql: fix SAVEPOINT RELEASE statement
>
> src/box/errcode.h | 1 +
> src/box/sql/build.c | 51 ++-----
> src/box/sql/fkey.c | 66 +++------
> src/box/sql/main.c | 8 +-
> src/box/sql/parse.y | 11 +-
> src/box/sql/pragma.c | 3 -
> src/box/sql/sqliteInt.h | 33 ++++-
> src/box/sql/status.c | 3 +-
> src/box/sql/vdbe.c | 176 ++++++++++++-----------
> src/box/sql/vdbeInt.h | 29 +---
> src/box/sql/vdbeapi.c | 4 -
> src/box/sql/vdbeaux.c | 83 +++++------
> src/box/txn.c | 18 ++-
> src/box/txn.h | 22 ++-
> test/box/misc.result | 1 +
> test/sql/gh-3313-savepoints-outside-txn.result | 32 +++++
> test/sql/gh-3313-savepoints-outside-txn.test.lua | 18 +++
> test/sql/gh-3379-release-savepoints.result | 40 ++++++
> test/sql/gh-3379-release-savepoints.test.lua | 26 ++++
> test/sql/transitive-transactions.result | 124 ++++++++++++++++
> test/sql/transitive-transactions.test.lua | 67 +++++++++
> 21 files changed, 555 insertions(+), 261 deletions(-)
> create mode 100644 test/sql/gh-3313-savepoints-outside-txn.result
> create mode 100644 test/sql/gh-3313-savepoints-outside-txn.test.lua
> create mode 100644 test/sql/gh-3379-release-savepoints.result
> create mode 100644 test/sql/gh-3379-release-savepoints.test.lua
> create mode 100644 test/sql/transitive-transactions.result
> create mode 100644 test/sql/transitive-transactions.test.lua
>
More information about the Tarantool-patches
mailing list