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 E2232281D8 for ; Sun, 12 Aug 2018 10:13:24 -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 ZEGSq-uRtJyN for ; Sun, 12 Aug 2018 10:13:24 -0400 (EDT) Received: from smtp54.i.mail.ru (smtp54.i.mail.ru [217.69.128.34]) (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 2E1D82807B for ; Sun, 12 Aug 2018 10:13:22 -0400 (EDT) From: Nikita Pettik Subject: [tarantool-patches] [PATCH 00/10] sql: cleanup in struct Index and struct Table Date: Sun, 12 Aug 2018 17:12:56 +0300 Message-Id: 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: tarantool-patches@freelists.org Cc: v.shpilevoy@tarantool.org, Nikita Pettik 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 -- 2.15.1