From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp54.i.mail.ru (smtp54.i.mail.ru [217.69.128.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 3ECF44696C3 for ; Fri, 10 Apr 2020 11:10:46 +0300 (MSK) From: Leonid Vasiliev Date: Fri, 10 Apr 2020 11:10:38 +0300 Message-Id: Subject: [Tarantool-patches] [PATCH v2 0/5] Extending error functionality List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: v.shpilevoy@tarantool.org Cc: tarantool-patches@dev.tarantool.org https://github.com/tarantool/tarantool/issues/4398 https://github.com/tarantool/tarantool/tree/lvasiliev/gh-4398-expose-error-module-4 According to https://github.com/tarantool/tarantool/issues/4398 (and after some discussion) we would like box.error to have: * Ability to create new error types * Transparent marshalling through net.box * Lua backtrace @Changelog Added: Lua traceback to error. Posibility to create errors of a custom user type Transparent marshalling error through net.box(gh-4398) Leonid Vasiliev (5): error: Add a Lua backtrace to error error: Add the custom error type error: Increase the number of fields transmitted through IPROTO iproto: Add session settings for IPROTO iproto: Update error MsgPack encoding src/box/CMakeLists.txt | 1 + src/box/errcode.h | 1 + src/box/error.cc | 87 ++++++- src/box/error.h | 49 +++- src/box/iproto.cc | 97 ++++++++ src/box/iproto_constants.h | 2 + src/box/lua/call.c | 29 ++- src/box/lua/error.cc | 189 ++++++++++++--- src/box/lua/execute.c | 2 +- src/box/lua/init.c | 56 +++++ src/box/lua/mp_error.cc | 454 +++++++++++++++++++++++++++++++++++ src/box/lua/mp_error.h | 49 ++++ src/box/lua/net_box.lua | 33 ++- src/box/lua/tuple.c | 28 +-- src/box/session.cc | 3 + src/box/session.h | 3 + src/box/session_settings.h | 1 + src/box/sql/func.c | 4 +- src/box/xrow.c | 19 +- src/lib/core/diag.c | 32 +++ src/lib/core/diag.h | 11 + src/lib/core/exception.cc | 1 + src/lib/core/mp_extension_types.h | 5 +- src/lua/error.c | 12 +- src/lua/error.h | 3 +- src/lua/error.lua | 23 +- src/lua/msgpack.c | 28 ++- src/lua/msgpack.h | 8 +- src/lua/utils.c | 16 +- src/lua/utils.h | 26 +- test/app/fiber.result | 4 +- test/box-tap/extended_error.test.lua | 164 +++++++++++++ test/box/error.result | 9 +- test/engine/func_index.result | 18 +- 34 files changed, 1344 insertions(+), 123 deletions(-) create mode 100644 src/box/lua/mp_error.cc create mode 100644 src/box/lua/mp_error.h create mode 100755 test/box-tap/extended_error.test.lua -- 2.7.4