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 800eb5ff8d22afe6d8fccfd3e280208aa9214001..d59221142fe57ffcd10c7ed366111bd976cba8f1 100644 --- a/extra/exports +++ b/extra/exports @@ -577,6 +577,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 dcc072385b0f7844c493d78454bb72afa7e77573..768001b30376f1e300baed399d363c8566313436 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. *