[PATCH v8 0/5] box: Indexes by JSON path
Kirill Shcherbatov
kshcherbatov at tarantool.org
Wed Jan 16 16:44:38 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 8:
- implemented mp_stack class and reworked mp_tuple_field_map_init
with this new API
- reworked "specify patch in user-friendly form" as LUA code
- reworked tuple_field* routines stack to be a little more logical
- path allocation on region in tuple_format1_can_store_format2_tuples
- removed max path limit
- better class members names
- point code refactoring
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 (5):
lib: updated msgpuck library version
box: refactor tuple_field_raw_by_path routine
box: introduce JSON Indexes
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 | 153 +++++++++--
src/box/key_def.h | 48 +++-
src/box/lua/schema.lua | 60 ++++-
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 | 51 ++--
src/box/tuple_compare.cc | 7 +-
src/box/tuple_extract_key.cc | 30 ++-
src/box/tuple_format.c | 362 +++++++++++++++++--------
src/box/tuple_format.h | 128 +++++++--
src/box/tuple_hash.cc | 2 +-
src/box/vinyl.c | 4 +
src/box/vy_log.c | 8 +-
src/box/vy_point_lookup.c | 3 +-
src/box/vy_stmt.c | 74 ++++--
src/lib/msgpuck | 2 +-
test/engine/json.result | 494 +++++++++++++++++++++++++++++++++++
test/engine/json.test.lua | 143 ++++++++++
test/engine/tuple.result | 16 +-
test/unit/msgpack.result | 24 +-
27 files changed, 1401 insertions(+), 244 deletions(-)
create mode 100644 test/engine/json.result
create mode 100644 test/engine/json.test.lua
--
2.19.2
More information about the Tarantool-patches
mailing list