From 90ff65744cd18b62d4a9740bde46bdd9ab18d185 Mon Sep 17 00:00:00 2001
From: godzie44 <godzie@yandex.ru>
Date: Mon, 6 Jun 2022 16:33:10 +0300
Subject: [PATCH] sql: add sql_execute_prepared_ext function, same as
 sql_execute_prepared but without `region` parameter closes #2

NO_DOC=minor
NO_TEST=minor
---
 changelogs/unreleased/fork-2-prepared-statement.md |  4 ++++
 extra/exports                                      |  1 +
 src/box/execute.h                                  | 14 ++++++++++++++
 src/box/lua/execute.c                              |  8 ++++++++
 4 files changed, 27 insertions(+)
 create mode 100644 changelogs/unreleased/fork-2-prepared-statement.md

diff --git a/changelogs/unreleased/fork-2-prepared-statement.md b/changelogs/unreleased/fork-2-prepared-statement.md
new file mode 100644
index 0000000000..3e0345e090
--- /dev/null
+++ b/changelogs/unreleased/fork-2-prepared-statement.md
@@ -0,0 +1,4 @@
+## feature/build
+
+* add sql_execute_prepared_ext function, same as sql_execute_prepared but without `region` parameter
+* export sql_execute_prepared_ext symbol
diff --git a/extra/exports b/extra/exports
index 93e1c6b5f6..e0cc1c7ce6 100644
--- a/extra/exports
+++ b/extra/exports
@@ -573,6 +573,7 @@ sql_unprepare
 sql_stmt_query_str
 sql_stmt_calculate_id
 sql_bind_list_decode
+sql_execute_prepared_ext
 # picodata decimal
 decNumberToString
 decimal_precision
diff --git a/src/box/execute.h b/src/box/execute.h
index 68808c486f..c15e9d67ba 100644
--- a/src/box/execute.h
+++ b/src/box/execute.h
@@ -55,6 +55,20 @@ struct sql_stmt;
 int
 sql_unprepare(uint32_t stmt_id);
 
+/**
+ * Execute prepared query (exported version).
+ * @param query_id prepared query id.
+ * @param bind Array of parameters.
+ * @param bind_count Length of a bind.
+ * @param port Port to store SQL response.
+ *
+ * @retval  0 Success.
+ * @retval -1 Error.
+ */
+int
+sql_execute_prepared_ext(uint32_t query_id, const struct sql_bind *bind,
+			 uint32_t bind_count, struct port *port);
+
 int
 sql_execute_prepared(uint32_t query_id, const struct sql_bind *bind,
 		     uint32_t bind_count, struct port *port,
diff --git a/src/box/lua/execute.c b/src/box/lua/execute.c
index 714021d7e1..0148d6df1b 100644
--- a/src/box/lua/execute.c
+++ b/src/box/lua/execute.c
@@ -273,6 +273,14 @@ port_sql_dump_lua(struct port *port, struct lua_State *L, bool is_flat)
 	}
 }
 
+int
+sql_execute_prepared_ext(uint32_t stmt_id, const struct sql_bind *bind,
+			 uint32_t bind_count, struct port *port)
+{
+	return sql_execute_prepared(stmt_id, bind, bind_count, port,
+								&fiber()->gc);
+}
+
 /**
  * Decode a single bind column from Lua stack.
  *
-- 
GitLab