[Tarantool-patches] [PATCH 1.10 14/16] WIP: module api: expose box_key_def_merge()

Alexander Turenko alexander.turenko at tarantool.org
Wed Sep 23 04:40:27 MSK 2020


Part of #5273

(cherry picked from commit de2594c6f3b2c45e07c53323c9201f5db9f1f67e)
---
 extra/exports         |  1 +
 src/box/key_def_api.c |  6 ++++++
 src/box/key_def_api.h | 14 ++++++++++++++
 3 files changed, 21 insertions(+)

diff --git a/extra/exports b/extra/exports
index 2afc36def..696ff2f30 100644
--- a/extra/exports
+++ b/extra/exports
@@ -149,6 +149,7 @@ box_key_def_new
 box_key_def_delete
 box_key_def_dump_parts
 box_key_def_new_ex
+box_key_def_merge
 box_key_part_def_create
 box_tuple_format_default
 box_tuple_new
diff --git a/src/box/key_def_api.c b/src/box/key_def_api.c
index 29203319c..a9cd95173 100644
--- a/src/box/key_def_api.c
+++ b/src/box/key_def_api.c
@@ -268,4 +268,10 @@ box_tuple_compare_with_key(const box_tuple_t *tuple_a, const char *key_b,
 
 }
 
+box_key_def_t *
+box_key_def_merge(const box_key_def_t *first, const box_key_def_t *second)
+{
+	return key_def_merge(first, second);
+}
+
 /* }}} API functions implementations */
diff --git a/src/box/key_def_api.h b/src/box/key_def_api.h
index bdc3ecebd..e3febe69e 100644
--- a/src/box/key_def_api.h
+++ b/src/box/key_def_api.h
@@ -208,6 +208,20 @@ API_EXPORT int
 box_tuple_compare_with_key(const box_tuple_t *tuple_a, const char *key_b,
 			   box_key_def_t *key_def);
 
+/**
+ * Allocate a new key_def with a set union of key parts from
+ * first and second key defs.
+ *
+ * Parts of the new key_def consist of the first key_def's parts
+ * and those parts of the second key_def that were not among the
+ * first parts.
+ *
+ * @retval not NULL Ok.
+ * @retval NULL     Memory error.
+ */
+API_EXPORT box_key_def_t *
+box_key_def_merge(const box_key_def_t *first, const box_key_def_t *second);
+
 /** \endcond public */
 
 /*
-- 
2.25.0



More information about the Tarantool-patches mailing list