From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp61.i.mail.ru (smtp61.i.mail.ru [217.69.128.41]) (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 D2A15469719 for ; Wed, 23 Sep 2020 04:40:31 +0300 (MSK) From: Alexander Turenko Date: Wed, 23 Sep 2020 04:40:13 +0300 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH 1.10 00/16] RFC: module api: extend for external key_def Lua module List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Vladislav Shpilevoy Cc: tarantool-patches@dev.tarantool.org, Alexander Turenko The backport of the patchset to 1.10. I decided to send it to ease commenting (despite that there is many repeating code). The status is the same as for the master patchset: it looks ready except tests. I'll write them. See the cover letter for the master patchset for details ([1]). My doubts around the backport are also in the master cover letter. Issues: https://github.com/tarantool/tarantool/issues/5313 ('module api: module API requires C11') https://github.com/tarantool/tarantool/issues/5273 ('module api: expose everything that is needed for external key_def module') Branch: https://github.com/tarantool/tarantool/tree/Totktonada/gh-5273-expand-module-api-1.10 [1]: https://lists.tarantool.org/pipermail/tarantool-patches/2020-September/019583.html Alexander Turenko (16): collation: allow to find a collation by a name refactoring: adjust contract of luaT_tuple_new() module api: get rid of typedef redefinitions WIP: module api: expose box region WIP: module api/lua: add luaL_iscdata() function WIP: module api/lua: expose luaT_tuple_new() WIP: module api/lua: add luaT_tuple_encode() WIP: refactoring: add API_EXPORT to lua/tuple functions WIP: refactoring: add API_EXPORT to key_def functions WIP: refactoring: extract key_def module API functions WIP: module api: add box_key_def_new_ex() WIP: module api: add box_key_def_dump_parts() WIP: module api: expose box_tuple_validate_key_parts() WIP: module api: expose box_key_def_merge() WIP: module api: expose box_tuple_extract_key_ex() WIP: module api: add box_key_def_validate_key() extra/exports | 14 ++ src/CMakeLists.txt | 6 +- src/box/CMakeLists.txt | 1 + src/box/coll_id_cache.c | 50 +++++- src/box/coll_id_cache.h | 6 + src/box/index.h | 5 +- src/box/key_def.c | 53 +----- src/box/key_def.h | 85 ++++----- src/box/key_def_api.c | 298 ++++++++++++++++++++++++++++++++ src/box/key_def_api.h | 274 +++++++++++++++++++++++++++++ src/box/lua/space.cc | 2 +- src/box/lua/tuple.c | 62 +++++-- src/box/lua/tuple.h | 65 ++++++- src/fiber.c | 24 +++ src/fiber.h | 101 +++++++++++ src/lua/utils.c | 6 + src/lua/utils.h | 20 +++ test/app-tap/CMakeLists.txt | 6 + test/app-tap/module_api.c | 2 + test/unit/CMakeLists.txt | 4 + test/unit/luaT_tuple_new.c | 175 +++++++++++++++++++ test/unit/luaT_tuple_new.result | 22 +++ test/unit/vy_iterators_helper.c | 1 + test/unit/vy_mem.c | 1 + test/unit/vy_point_lookup.c | 1 + test/unit/vy_write_iterator.c | 1 + 26 files changed, 1151 insertions(+), 134 deletions(-) create mode 100644 src/box/key_def_api.c create mode 100644 src/box/key_def_api.h create mode 100644 test/unit/luaT_tuple_new.c create mode 100644 test/unit/luaT_tuple_new.result -- 2.25.0