Tarantool development patches archive
 help / color / mirror / Atom feed
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

             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