[Tarantool-patches] [PATCH v3 0/2] vinyl: rework upsert operation
Nikita Pettik
korablev at tarantool.org
Sat Oct 3 16:52:41 MSK 2020
On 03 Oct 16:28, Nikita Pettik wrote:
> Issues:
> https://github.com/tarantool/tarantool/issues/1622
> https://github.com/tarantool/tarantool/issues/5105
> https://github.com/tarantool/tarantool/issues/5092
> https://github.com/tarantool/tarantool/issues/5107
> Branch:
> https://github.com/tarantool/tarantool/tree/np/gh-5107-dont-squash-ops
Sorry guys, the real branch is https://github.com/tarantool/tarantool/tree/np/gh-5107-dont-squash-and-merge-ops
> @ChangeLog:
> - Rework upsert operation in vinyl so that now (gh-5107):
> - if upsert can't be applied it is skipped and corresponding error is logged (gh-1622);
> - upserts now follow associative property: result of several upserts
> doesn't depend on the order of their application (gh-5105);
> - upserts referring to -1 fieldno are handled correctly now (gh-5087).
> - there's no more upserts squash procedure: upserts referring to the
> same field with arithmetic operations are not merged into one
> operation since resulting upsert might not be applied - as a result
> both upserts would be ignored (meanwhile only one should be).
>
> Changes in v3:
> - Removed upsert squashing procedure;
> - Added two additional test covering overflow error during upsert
> application;
> - Fixed NULL dereference bug in vy_apply_upsert_on_terminal_stmt().
>
> Nikita Pettik (2):
> vinyl: rework upsert operation
> vinyl: remove squash procedures from source code
>
> src/box/vinyl.c | 2 +-
> src/box/vy_stmt.c | 28 +-
> src/box/vy_stmt.h | 5 +-
> src/box/vy_upsert.c | 302 +++++++++++---------
> src/box/xrow_update.c | 144 ----------
> src/box/xrow_update.h | 14 -
> test/unit/vy_iterators_helper.c | 2 +-
> test/vinyl/upsert.result | 473 ++++++++++++++++++++++++++++++++
> test/vinyl/upsert.test.lua | 194 +++++++++++++
> 9 files changed, 867 insertions(+), 297 deletions(-)
>
> --
> 2.17.1
>
More information about the Tarantool-patches
mailing list