diff --git a/changelogs/unreleased/fork-2-prepared-statement.md b/changelogs/unreleased/fork-2-prepared-statement.md new file mode 100644 index 0000000000000000000000000000000000000000..3e0345e0905b0b9ec269c4b42cef1e1c11602975 --- /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 93e1c6b5f64fd3804c20b9a899824c7010847f3c..e0cc1c7ce64705af39f989da8aa681146682ffe8 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 68808c486fe083f3aabd92f6975b476292113937..c15e9d67ba3c0d62f854aeaef9c264c485213932 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 714021d7e16bd4926b544ecf280e0864c0c570ab..0148d6df1b5494b0f47df761d328dff47a722d40 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. *