tuple: enable isolated JSON updates
Isolated tuple update is an update by JSON path, which hasn't a common prefix with any other JSON update operation in the same set. For example, these JSON update operations are isolated: {'=', '[1][2][3]', 100}, {'+', '[2].b.c', 200} Their JSON paths has no a common prefix. But these operations are not isolated: {'=', '[1][2][3]', 100}, {'+', '[1].b.c', 200} They have a common prefix '[1]'. Isolated updates are a first part of fully functional JSON updates. Their feature is that their implementation is relatively simple and lightweight - an isolated JSON update does not store each part of the JSON path as a separate object. Isolated update stores just string with JSON and pointer to the MessagePack object to update. Such isolated updates are called 'bar update'. They are a basic brick of more complex JSON updates. Part of #1261
Showing
- src/box/CMakeLists.txt 1 addition, 0 deletionssrc/box/CMakeLists.txt
- src/box/vinyl.c 14 additions, 2 deletionssrc/box/vinyl.c
- src/box/xrow_update.c 36 additions, 5 deletionssrc/box/xrow_update.c
- src/box/xrow_update_array.c 21 additions, 1 deletionsrc/box/xrow_update_array.c
- src/box/xrow_update_bar.c 454 additions, 0 deletionssrc/box/xrow_update_bar.c
- src/box/xrow_update_field.c 39 additions, 6 deletionssrc/box/xrow_update_field.c
- src/box/xrow_update_field.h 115 additions, 0 deletionssrc/box/xrow_update_field.h
- test/box/update.result 409 additions, 1 deletiontest/box/update.result
- test/box/update.test.lua 145 additions, 0 deletionstest/box/update.test.lua
- test/engine/update.result 0 additions, 5 deletionstest/engine/update.result
- test/engine/update.test.lua 0 additions, 2 deletionstest/engine/update.test.lua
- test/unit/column_mask.c 73 additions, 2 deletionstest/unit/column_mask.c
- test/unit/column_mask.result 7 additions, 1 deletiontest/unit/column_mask.result
Loading
Please register or sign in to comment