error: add session setting for error type marshaling
Errors are encoded as a string when serialized to MessagePack to
be sent over IProto or when just saved into a buffer via Lua
modules msgpackffi and msgpack.
That is not very useful on client-side, because most of the error
metadata is lost: code, type, trace - everything except the
message.
Next commits are going to dedicate a new MP_EXT type to error
objects so as everything could be encoded, and on client side it
would be possible to restore types.
But this is a breaking change in case some users use old
connectors when work with newer Tarantool instances. So to smooth
the upgrade there is a new session setting -
'error_marshaling_enabled'.
By default it is false. When it is true, all fibers of the given
session will serialize error objects as MP_EXT.
Co-authored-by:
Vladislav <Shpilevoy<v.shpilevoy@tarantool.org>
Needed for #4398
Showing
- src/box/lua/call.c 14 additions, 11 deletionssrc/box/lua/call.c
- src/box/lua/execute.c 1 addition, 1 deletionsrc/box/lua/execute.c
- src/box/lua/tuple.c 6 additions, 6 deletionssrc/box/lua/tuple.c
- src/box/session.cc 4 additions, 1 deletionsrc/box/session.cc
- src/box/session.h 3 additions, 2 deletionssrc/box/session.h
- src/box/session_settings.c 56 additions, 0 deletionssrc/box/session_settings.c
- src/box/session_settings.h 1 addition, 0 deletionssrc/box/session_settings.h
- src/box/sql/func.c 3 additions, 1 deletionsrc/box/sql/func.c
- src/lua/msgpack.c 13 additions, 12 deletionssrc/lua/msgpack.c
- src/lua/msgpack.h 5 additions, 3 deletionssrc/lua/msgpack.h
- src/lua/utils.c 7 additions, 4 deletionssrc/lua/utils.c
- src/lua/utils.h 5 additions, 2 deletionssrc/lua/utils.h
- src/serializer_opts.h 44 additions, 0 deletionssrc/serializer_opts.h
- test/box/session_settings.result 2 additions, 1 deletiontest/box/session_settings.result
Loading
Please register or sign in to comment