Tarantool development patches archive
 help / color / mirror / Atom feed
* [PATCH v7 0/5] box: Indexes by JSON path
@ 2019-01-09  8:29 Kirill Shcherbatov
  2019-01-09  8:29 ` [PATCH v7 1/5] box: introduce JSON Indexes Kirill Shcherbatov
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Kirill Shcherbatov @ 2019-01-09  8:29 UTC (permalink / raw)
  To: tarantool-patches, vdavydov.dev; +Cc: kostja, Kirill Shcherbatov

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 7:
 - rebased to actual 2.1 containing partialy-reworked part of v6
 - introduced a JSON path length limit to guarantee it fits in
   static buffer
 - reworked tuple_format1_can_store_format2_tuples to use trivial
   routines tuple_field_path and json_tree_lookup_path_entry to
   lookup record(it is not perf-critical place)
 - reworked similar code in tuple_format_create that does stmt
   size estimation and vy_stmt_new_surrogate_from_key tuple built
   as a new tuple_format_stmt_encode routine.

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):
  box: introduce JSON Indexes
  box: introduce has_json_paths flag in templates
  box: tune tuple_field_raw_by_path for indexed data
  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            | 172 ++++++++++--
 src/box/key_def.h            |  44 +++-
 src/box/lua/index.c          |  64 +++++
 src/box/lua/schema.lua       |  22 +-
 src/box/lua/space.cc         |   5 +
 src/box/memtx_engine.c       |   4 +
 src/box/schema_def.h         |   1 +
 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              |  19 --
 src/box/tuple_compare.cc     | 119 ++++++---
 src/box/tuple_extract_key.cc | 126 ++++++---
 src/box/tuple_format.c       | 494 +++++++++++++++++++++++++++++------
 src/box/tuple_format.h       | 100 +++++--
 src/box/tuple_hash.cc        |  47 +++-
 src/box/vinyl.c              |   4 +
 src/box/vy_log.c             |  11 +-
 src/box/vy_point_lookup.c    |   2 -
 src/box/vy_stmt.c            |  49 ++--
 src/lib/json/json.c          |   7 +-
 src/lib/json/json.h          |  16 ++
 test/engine/json.result      | 481 ++++++++++++++++++++++++++++++++++
 test/engine/json.test.lua    | 139 ++++++++++
 27 files changed, 1665 insertions(+), 279 deletions(-)
 create mode 100644 test/engine/json.result
 create mode 100644 test/engine/json.test.lua

-- 
2.19.2

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2019-01-10 11:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-09  8:29 [PATCH v7 0/5] box: Indexes by JSON path Kirill Shcherbatov
2019-01-09  8:29 ` [PATCH v7 1/5] box: introduce JSON Indexes Kirill Shcherbatov
2019-01-10 10:16   ` Vladimir Davydov
2019-01-09  8:29 ` [PATCH v7 2/5] box: introduce has_json_paths flag in templates Kirill Shcherbatov
2019-01-09  8:29 ` [PATCH v7 3/5] box: tune tuple_field_raw_by_path for indexed data Kirill Shcherbatov
2019-01-09  8:29 ` [PATCH v7 4/5] box: introduce offset_slot cache in key_part Kirill Shcherbatov
2019-01-10 11:28   ` Vladimir Davydov
2019-01-09  8:29 ` [PATCH v7 5/5] box: specify indexes in user-friendly form Kirill Shcherbatov
2019-01-10 10:21   ` Vladimir Davydov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox