[PATCH 00/12] vinyl: allow to extend key def of non-empty index
Vladimir Davydov
vdavydov.dev at gmail.com
Sun Apr 1 12:05:27 MSK 2018
The goal of this patch set is to allow altering non-empty vinyl
indexes in case the new key definition is fully compatible with the
old one (i.e. has the same key parts, but more generic field types).
This is an important step toward closing #1653 [1].
The code is available at GitHub, see [2]. Note this patch set is based
on top of the patch that removes vinyl upsert_format, see [3, 4].
[1] https://github.com/tarantool/tarantool/issues/1653
[2] https://github.com/tarantool/tarantool/commits/vy-allow-to-extend-key-def
[3] https://github.com/tarantool/tarantool/commits/vy-zap-upsert-format
[4] https://www.freelists.org/post/tarantool-patches/PATCH-02-vinyl-zap-upsert-format
Vladimir Davydov (12):
index: add commit_modify virtual method
alter: require rebuild of all secondary vinyl indexes if pk changes
alter: do not rebuild secondary indexes on compatible pk changes
space: make space_swap_index method virtual
vinyl: do not reallocate tuple formats on alter
vinyl: zap vy_lsm_validate_formats
vinyl: zap vy_mem_update_formats
vinyl: remove pointless is_nullable initialization for disk_format
vinyl: use source tuple format when copying field map
vinyl: rename vy_log_record::commit_lsn to create_lsn
vinyl: do not write VY_LOG_DUMP_LSM record to snapshot
vinyl: allow to modify key definition if it does not require rebuild
src/box/alter.cc | 28 +++++---
src/box/index.cc | 10 +++
src/box/index.h | 28 ++++++++
src/box/key_def.cc | 9 +++
src/box/key_def.h | 7 ++
src/box/memtx_bitset.c | 2 +
src/box/memtx_hash.c | 2 +
src/box/memtx_rtree.c | 2 +
src/box/memtx_space.c | 1 +
src/box/memtx_tree.c | 10 +++
src/box/space.c | 9 ++-
src/box/space.h | 33 ++++++---
src/box/sysview_engine.c | 1 +
src/box/sysview_index.c | 2 +
src/box/tuple_format.c | 18 -----
src/box/tuple_format.h | 8 ---
src/box/vinyl.c | 144 ++++++++++++++++++++++----------------
src/box/vy_log.c | 124 ++++++++++++++++++++++++--------
src/box/vy_log.h | 36 ++++++++--
src/box/vy_lsm.c | 49 +++----------
src/box/vy_lsm.h | 17 ++---
src/box/vy_mem.c | 15 +---
src/box/vy_point_lookup.c | 3 +-
src/box/vy_stmt.c | 18 ++---
src/box/vy_stmt.h | 6 +-
src/box/vy_upsert.c | 4 +-
test/engine/ddl.result | 113 +++++++++++++++++++++++++++++-
test/engine/ddl.test.lua | 35 ++++++++-
test/engine/replica_join.result | 26 ++++++-
test/engine/replica_join.test.lua | 2 +
test/engine/truncate.result | 2 +-
test/engine/truncate.test.lua | 2 +-
test/vinyl/ddl.result | 78 ++++++---------------
test/vinyl/ddl.test.lua | 30 ++------
test/vinyl/gh.result | 2 +-
test/vinyl/layout.result | 75 +++++++++-----------
test/vinyl/layout.test.lua | 4 +-
37 files changed, 595 insertions(+), 360 deletions(-)
--
2.11.0
More information about the Tarantool-patches
mailing list