[tarantool-patches] [PATCH 00/10] sql: cleanup in struct Index and struct Table
Nikita Pettik
korablev at tarantool.org
Sun Aug 12 17:12:56 MSK 2018
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
More information about the Tarantool-patches
mailing list