[tarantool-patches] [PATCH v1 3/4] box: introduce box_space_id_by_name

Kirill Shcherbatov kshcherbatov at tarantool.org
Thu May 31 14:22:52 MSK 2018


Part of #3273.
---
 src/box/box.cc | 10 ++++++++--
 src/box/box.h  | 14 ++++++++++++++
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/src/box/box.cc b/src/box/box.cc
index 02722d6..9540d85 100644
--- a/src/box/box.cc
+++ b/src/box/box.cc
@@ -877,7 +877,7 @@ box_return_tuple(box_function_ctx_t *ctx, box_tuple_t *tuple)
 
 /* schema_find_id()-like method using only public API */
 uint32_t
-box_space_id_by_name(const char *name, uint32_t len)
+space_id_by_name(uint32_t system_space_id, const char *name, uint32_t len)
 {
 	if (len > BOX_NAME_MAX)
 		return BOX_ID_NIL;
@@ -892,7 +892,7 @@ box_space_id_by_name(const char *name, uint32_t len)
 
 	/* NOTE: error and missing key cases are indistinguishable */
 	box_tuple_t *tuple;
-	if (box_index_get(BOX_VSPACE_ID, 2, begin, end, &tuple) != 0)
+	if (box_index_get(system_space_id, 2, begin, end, &tuple) != 0)
 		return BOX_ID_NIL;
 	if (tuple == NULL)
 		return BOX_ID_NIL;
@@ -902,6 +902,12 @@ box_space_id_by_name(const char *name, uint32_t len)
 }
 
 uint32_t
+box_space_id_by_name(const char *name, uint32_t len)
+{
+	return space_id_by_name(BOX_VSPACE_ID, name, len);
+}
+
+uint32_t
 box_index_id_by_name(uint32_t space_id, const char *name, uint32_t len)
 {
 	if (len > BOX_NAME_MAX)
diff --git a/src/box/box.h b/src/box/box.h
index bdd5d5c..ba33113 100644
--- a/src/box/box.h
+++ b/src/box/box.h
@@ -220,6 +220,20 @@ API_EXPORT int
 box_return_tuple(box_function_ctx_t *ctx, box_tuple_t *tuple);
 
 /**
+ * Find space id by name in specified system space.
+ *
+ * This function performs SELECT request to _vspace system space.
+ * \param system_space_id space to lookup name.
+ * \param name space name
+ * \param len length of \a name
+ * \retval BOX_ID_NIL on error or if not found (check box_error_last())
+ * \retval space_id otherwise
+ * \sa box_index_id_by_name
+ */
+uint32_t
+space_id_by_name(uint32_t system_space_id, const char *name, uint32_t len);
+
+/**
  * Find space id by name.
  *
  * This function performs SELECT request to _vspace system space.
-- 
2.7.4





More information about the Tarantool-patches mailing list