From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 4DB6B29D37 for ; Mon, 27 Aug 2018 13:24:30 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iSfbGD5eKDvo for ; Mon, 27 Aug 2018 13:24:30 -0400 (EDT) Received: from smtp53.i.mail.ru (smtp53.i.mail.ru [94.100.177.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 0D58B29D18 for ; Mon, 27 Aug 2018 13:24:30 -0400 (EDT) Subject: [tarantool-patches] Re: [PATCH 00/10] sql: cleanup in struct Index and struct Table References: From: Vladislav Shpilevoy Message-ID: <14d680c1-bad4-269d-8053-11aad124ef73@tarantool.org> Date: Mon, 27 Aug 2018 14:24:23 -0300 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: Nikita Pettik , tarantool-patches@freelists.org Thanks a lot for the patchset! LGTM. On 12/08/2018 11:12, Nikita Pettik wrote: > Branch: https://github.com/tarantool/tarantool/tree/np/cleanup-in-Index-and-Table > Issues: > https://github.com/tarantool/tarantool/issues/3561 > https://github.com/tarantool/tarantool/issues/3565 > https://github.com/tarantool/tarantool/issues/3566 > > Current patch-set is preliminary to finishing DD integration. > It gets rid off all functional fields from original SQLite's struct > Index and struct Table, which can be substituted with corresponding > fields from server structures or be calculated using them. > > It is worth mentioning ninth patch in series which removes support of > ON CONFLICT error actions related to index uniqueness. Firstly, alongside > with it INSERT and UPDATE code generation has been slightly simplified: > removed a lot of excess register allocations; moved cursors' allocations > closer to their usages (auxiliary cursors on secondary indexes are > required only to process REPLACE or IGNORE conflict actions); > significantly reworked function which generates code to process > constraint checks. To sump up, all these changes result in fixing > assertion fault during INSERT OR REPLACE and incorrect behavior > of UPDATE OR IGNORE statements. > > * To those who will review * > I deliberately separated all commits on removing fields since this way > seems to be easier to review and understand provided changes. > After review I can squash some of them, if you want so. > > Nikita Pettik (10): > sql: remove suport of ALTER TABLE ADD COLUMN > sql: remove string of fields collation from Table > sql: remove index hash from struct Table > sql: remove flags from struct Table > sql: remove affinity string of columns from Index > sql: completely remove support of partial indexes > sql: remove index type from struct Index > sql: use secondary indexes to process OP_Delete > sql: disable ON CONFLICT actions for indexes > sql: move autoincrement field number to server > > src/box/space_def.c | 3 + > src/box/space_def.h | 5 + > src/box/sql.c | 37 +- > src/box/sql/alter.c | 185 ------ > src/box/sql/analyze.c | 2 +- > src/box/sql/build.c | 263 +++------ > src/box/sql/delete.c | 20 +- > src/box/sql/insert.c | 968 ++++++++----------------------- > src/box/sql/main.c | 45 +- > src/box/sql/parse.y | 42 +- > src/box/sql/pragma.c | 10 +- > src/box/sql/prepare.c | 9 +- > src/box/sql/select.c | 4 +- > src/box/sql/sqliteInt.h | 198 ++++--- > src/box/sql/tarantoolInt.h | 16 +- > src/box/sql/update.c | 252 ++------ > src/box/sql/vdbe.c | 11 +- > src/box/sql/vdbeaux.c | 11 +- > src/box/sql/vdbemem.c | 3 +- > src/box/sql/where.c | 64 +- > src/box/sql/wherecode.c | 7 +- > test/sql-tap/conflict3.test.lua | 402 ------------- > test/sql-tap/gh-2931-savepoints.test.lua | 2 +- > test/sql-tap/gh2140-trans.test.lua | 54 +- > test/sql-tap/gh2964-abort.test.lua | 11 +- > test/sql-tap/index1.test.lua | 111 +--- > test/sql-tap/null.test.lua | 6 +- > test/sql-tap/tkt-4a03edc4c8.test.lua | 6 +- > test/sql-tap/triggerC.test.lua | 2 +- > test/sql/on-conflict.result | 134 +++-- > test/sql/on-conflict.test.lua | 79 ++- > 31 files changed, 733 insertions(+), 2229 deletions(-) > delete mode 100755 test/sql-tap/conflict3.test.lua >