box: support tuple formats in IPROTO responses
Tuple formats are sent in a separate IPROTO_TUPLE_FORMATS response body field, which is namely a mapping from format identifiers to serialized tuple formats. The algorithm for parsing IPROTO response body is the following: 1. Parse tuple formats and build a tuple format index. 2. Parse data passing the tuple format index in the decoding context. Add new backward compatibility option `box_tuple_extension` which controls the server's `IPROTO_FEATURE_CALL_RET_TUPLE_EXTENSION` bit: needed for users that don't expect the new tuple extension to be returned in call and eval responses instead of basic MsgPack types. This option will also be used for `IPROTO_FEATURE_CALL_ARG_TUPLE_EXTENSION` bit with the same purpose. Closes #8147 NO_DOC=<added in a later commit together with documentation of tuple formats in IPROTO `call` and `eval` arguments>
Showing
- changelogs/unreleased/gh-8147-tuple-format-in-iproto-responses.md 5 additions, 0 deletions...gs/unreleased/gh-8147-tuple-format-in-iproto-responses.md
- src/box/CMakeLists.txt 1 addition, 0 deletionssrc/box/CMakeLists.txt
- src/box/iproto.cc 78 additions, 13 deletionssrc/box/iproto.cc
- src/box/iproto_constants.h 5 additions, 0 deletionssrc/box/iproto_constants.h
- src/box/iproto_features.c 4 additions, 0 deletionssrc/box/iproto_features.c
- src/box/iproto_features.h 12 additions, 0 deletionssrc/box/iproto_features.h
- src/box/lua/init.c 41 additions, 18 deletionssrc/box/lua/init.c
- src/box/lua/net_box.c 108 additions, 59 deletionssrc/box/lua/net_box.c
- src/box/lua/tuple.c 35 additions, 0 deletionssrc/box/lua/tuple.c
- src/box/mp_box_ctx.c 21 additions, 0 deletionssrc/box/mp_box_ctx.c
- src/box/mp_box_ctx.h 72 additions, 0 deletionssrc/box/mp_box_ctx.h
- src/box/port.c 11 additions, 2 deletionssrc/box/port.c
- src/box/tuple_format_map.c 35 additions, 0 deletionssrc/box/tuple_format_map.c
- src/box/tuple_format_map.h 17 additions, 0 deletionssrc/box/tuple_format_map.h
- src/box/xrow.c 23 additions, 12 deletionssrc/box/xrow.c
- src/box/xrow.h 4 additions, 2 deletionssrc/box/xrow.h
- src/lua/compat.lua 13 additions, 0 deletionssrc/lua/compat.lua
- test/box-luatest/gh_7894_export_iproto_constants_and_features_test.lua 5 additions, 0 deletions...est/gh_7894_export_iproto_constants_and_features_test.lua
- test/box-luatest/gh_8147_tuple_formats_in_iproto_responses_test.lua 168 additions, 0 deletions...uatest/gh_8147_tuple_formats_in_iproto_responses_test.lua
- test/box-py/iproto.result 3 additions, 3 deletionstest/box-py/iproto.result
Loading
Please register or sign in to comment