From: Nikita Pettik <korablev@tarantool.org> To: tarantool-patches@freelists.org Cc: v.shpilevoy@tarantool.org, Nikita Pettik <korablev@tarantool.org> Subject: [tarantool-patches] [PATCH 00/10] sql: cleanup in struct Index and struct Table Date: Sun, 12 Aug 2018 17:12:56 +0300 [thread overview] Message-ID: <cover.1534001739.git.korablev@tarantool.org> (raw) 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
next reply other threads:[~2018-08-12 14:13 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-08-12 14:12 Nikita Pettik [this message] 2018-08-12 14:12 ` [tarantool-patches] [PATCH 01/10] sql: remove suport of ALTER TABLE ADD COLUMN Nikita Pettik 2018-08-13 20:24 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-12 14:12 ` [tarantool-patches] [PATCH 02/10] sql: remove string of fields collation from Table Nikita Pettik 2018-08-13 20:24 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-12 14:12 ` [tarantool-patches] [PATCH 03/10] sql: remove index hash from struct Table Nikita Pettik 2018-08-13 20:24 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-12 14:13 ` [tarantool-patches] [PATCH 04/10] sql: remove flags " Nikita Pettik 2018-08-13 20:24 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-12 14:13 ` [tarantool-patches] [PATCH 05/10] sql: remove affinity string of columns from Index Nikita Pettik 2018-08-13 20:24 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-21 16:31 ` n.pettik 2018-08-24 21:04 ` Vladislav Shpilevoy 2018-08-26 19:45 ` n.pettik 2018-08-12 14:13 ` [tarantool-patches] [PATCH 06/10] sql: completely remove support of partial indexes Nikita Pettik 2018-08-13 20:24 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-21 16:31 ` n.pettik 2018-08-24 21:04 ` Vladislav Shpilevoy 2018-08-26 19:44 ` n.pettik 2018-08-12 14:13 ` [tarantool-patches] [PATCH 07/10] sql: remove index type from struct Index Nikita Pettik 2018-08-13 20:24 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-21 16:31 ` n.pettik 2018-08-12 14:13 ` [tarantool-patches] [PATCH 08/10] sql: use secondary indexes to process OP_Delete Nikita Pettik 2018-08-13 20:24 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-12 14:13 ` [tarantool-patches] [PATCH 09/10] sql: disable ON CONFLICT actions for indexes Nikita Pettik 2018-08-13 20:24 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-21 16:31 ` n.pettik 2018-08-24 21:04 ` Vladislav Shpilevoy 2018-08-26 19:44 ` n.pettik 2018-08-27 17:24 ` Vladislav Shpilevoy 2018-08-12 14:13 ` [tarantool-patches] [PATCH 10/10] sql: move autoincrement field number to server Nikita Pettik 2018-08-13 20:24 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-21 16:31 ` n.pettik 2018-08-24 21:03 ` Vladislav Shpilevoy 2018-08-26 19:44 ` n.pettik 2018-08-27 17:24 ` Vladislav Shpilevoy 2018-08-27 17:24 ` [tarantool-patches] Re: [PATCH 00/10] sql: cleanup in struct Index and struct Table Vladislav Shpilevoy 2018-08-29 14:11 ` Kirill Yukhin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cover.1534001739.git.korablev@tarantool.org \ --to=korablev@tarantool.org \ --cc=tarantool-patches@freelists.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [tarantool-patches] [PATCH 00/10] sql: cleanup in struct Index and struct Table' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox