From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp57.i.mail.ru (smtp57.i.mail.ru [217.69.128.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 82C594696C3 for ; Thu, 16 Apr 2020 16:29:10 +0300 (MSK) Date: Thu, 16 Apr 2020 13:29:09 +0000 From: Nikita Pettik Message-ID: <20200416132909.GB6229@tarantool.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Subject: Re: [Tarantool-patches] [PATCH v3 0/3] sql: fix order of inserted rows List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: imeevma@tarantool.org Cc: tarantool-patches@dev.tarantool.org On 15 Apr 10:09, imeevma@tarantool.org wrote: > This patch-set fixes order of inserted rows in case ephemeral > space is used during INSERT into space with sequence. The order > now is the same in which these values were inserted originally. > Wrong order could lead to an error in case NULL was inserted into > field with sequence. > > https://github.com/tarantool/tarantool/issues/4256 > https://github.com/tarantool/tarantool/tree/imeevma/gh-4256-fix-order-during-insertion Pushed to master, backported to 2.3 and 2.2. Changelogs are updated correspondingly. Branch is dropped. > #ChangeLog > - The inserted values will now be inserted in the order in > which they were given in case of INSERT into space with > sesquence (gh-4256). > > Changes: > v1: > - Patch fixed the problem but the logic was too complex. > v2: > - After exanding of ephemeral space formats, solution become > simpler. Please, check out proper format of changelogs between versions: https://www.tarantool.io/en/doc/2.2/dev_guide/developer_guidelines/#how-to-submit-a-patch-for-review > v3: > - Expansion of ephemeral space format was divided into two > patches. > > Mergen Imeev (3): > box: extend ephemeral space format > sql: specify field types in ephemeral space format > sql: do not change order of inserted values > > src/box/space_def.c | 12 ++-- > src/box/space_def.h | 5 +- > src/box/sql.c | 73 +++++++++++++++++----- > src/box/sql/insert.c | 27 +++++++- > src/box/sql/select.c | 2 + > src/box/sql/sqlInt.h | 2 + > src/box/sql/vdbe.c | 19 +----- > src/box/tuple_format.c | 22 +++---- > ...256-do-not-change-order-during-insertion.result | 44 +++++++++++++ > ...6-do-not-change-order-during-insertion.test.sql | 13 ++++ > 10 files changed, 167 insertions(+), 52 deletions(-) > create mode 100644 test/sql/gh-4256-do-not-change-order-during-insertion.result > create mode 100644 test/sql/gh-4256-do-not-change-order-during-insertion.test.sql > > -- > 2.7.4 >