[PATCH v9 0/6] box: Indexes by JSON path
Kirill Shcherbatov
kshcherbatov at tarantool.org
Sun Feb 3 13:20:20 MSK 2019
Sometimes field data could have complex document structure.
When this structure is consistent across whole document,
you are able to create an index by JSON path.
Changes in version 9:
- new test cases for snapshooting, recovery, selects by full
and partial; primary and secondary indexes
- fixed corrupted vylog - there was invalid key_part_def
duplication in vy_log.c
- fixed vynyl's replace operation
- support for nullable key_def in
tuple_extract_key_slowpath_raw even it is never used with
has_optional_parts = true in Tarantool (since everywhere it
is used for pk that can't contain nullable parts)
- better comments everywhere
v8:
https://www.freelists.org/post/tarantool-patches/PATCH-v8-55-box-specify-indexes-in-userfriendly-form,1
v7:
https://www.freelists.org/post/tarantool-patches/PATCH-v7-55-box-specify-indexes-in-userfriendly-form,1
v6:
https://www.freelists.org/post/tarantool-patches/PATCH-v6-88-box-specify-indexes-in-userfriendly-form,1
v5:
https://www.freelists.org/post/tarantool-patches/PATCH-v5-99-box-specify-indexes-in-userfriendly-form,1
http://github.com/tarantool/tarantool/tree/kshch/gh-1012-json-indexes
https://github.com/tarantool/tarantool/issues/1012
Kirill Shcherbatov (6):
lib: update msgpuck library
box: introduce tuple_field_raw_by_path routine
box: introduce JSON Indexes
box: introduce has_json_paths flag in templates
box: introduce offset_slot cache in key_part
box: specify indexes in user-friendly form
src/box/alter.cc | 2 +-
src/box/index_def.c | 10 +-
src/box/key_def.c | 162 +++++++--
src/box/key_def.h | 48 ++-
src/box/lua/schema.lua | 100 ++++-
src/box/lua/space.cc | 5 +
src/box/lua/tuple.c | 9 +-
src/box/memtx_engine.c | 4 +
src/box/sql.c | 1 +
src/box/sql/build.c | 1 +
src/box/sql/select.c | 3 +-
src/box/sql/where.c | 1 +
src/box/tuple.h | 60 +--
src/box/tuple_compare.cc | 115 ++++--
src/box/tuple_extract_key.cc | 135 ++++---
src/box/tuple_format.c | 441 ++++++++++++++++------
src/box/tuple_format.h | 200 ++++++----
src/box/tuple_hash.cc | 40 +-
src/box/vinyl.c | 4 +
src/box/vy_log.c | 61 +++-
src/box/vy_point_lookup.c | 4 +-
src/box/vy_stmt.c | 202 ++++++++---
src/lib/msgpuck | 2 +-
test/engine/json.result | 685 +++++++++++++++++++++++++++++++++++
test/engine/json.test.lua | 194 ++++++++++
test/engine/tuple.result | 16 +-
test/unit/msgpack.result | 4 +-
27 files changed, 2095 insertions(+), 414 deletions(-)
create mode 100644 test/engine/json.result
create mode 100644 test/engine/json.test.lua
--
2.20.1
More information about the Tarantool-patches
mailing list