From: imeevma@tarantool.org To: v.shpilevoy@tarantool.org, tarantool-patches@freelists.org Subject: [tarantool-patches] [PATCH v3 1/7] box: store sql text and length in sql_request Date: Tue, 27 Nov 2018 22:25:18 +0300 [thread overview] Message-ID: <58aa507b0bcb6bb884c1247c0b1ee52ffc0938b2.1543344471.git.imeevma@gmail.com> (raw) In-Reply-To: <cover.1543344471.git.imeevma@gmail.com> Refactored sql_request structure to store pointer to sql string data and it's length instead of pointer to msgpack representation. This is required to use this structure in sql.c where the query has a different semantics and can be obtained from stack as a C string. Needed for #3505. --- src/box/execute.c | 6 +++--- src/box/execute.h | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/box/execute.c b/src/box/execute.c index fb3e08b..72fcd6c 100644 --- a/src/box/execute.c +++ b/src/box/execute.c @@ -284,7 +284,8 @@ error: if (sql_bind_list_decode(request, value, region) != 0) return -1; } else { - request->sql_text = value; + request->sql_text = + mp_decode_str(&value, &request->sql_text_len); } } if (request->sql_text == NULL) { @@ -596,8 +597,7 @@ sql_prepare_and_execute(const struct sql_request *request, struct sql_response *response, struct region *region) { const char *sql = request->sql_text; - uint32_t len; - sql = mp_decode_str(&sql, &len); + uint32_t len = request->sql_text_len; struct sqlite3_stmt *stmt; sqlite3 *db = sql_get(); if (db == NULL) { diff --git a/src/box/execute.h b/src/box/execute.h index 77bfd79..79cee69 100644 --- a/src/box/execute.h +++ b/src/box/execute.h @@ -58,6 +58,8 @@ struct sql_request { uint64_t sync; /** SQL statement text. */ const char *sql_text; + /** Length of the SQL statement text. */ + uint32_t sql_text_len; /** Array of parameters. */ struct sql_bind *bind; /** Length of the @bind. */ -- 2.7.4
next prev parent reply other threads:[~2018-11-27 19:25 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-11-27 19:25 [tarantool-patches] [PATCH v3 0/7] Remove box.sql.execute imeevma 2018-11-27 19:25 ` imeevma [this message] 2018-11-29 10:45 ` [tarantool-patches] [PATCH v3 1/7] box: store sql text and length in sql_request Vladimir Davydov 2018-11-27 19:25 ` [tarantool-patches] [PATCH v3 3/7] iproto: remove iproto functions from execute.c imeevma 2018-11-29 10:51 ` Vladimir Davydov 2018-11-27 19:25 ` [tarantool-patches] [PATCH v3 4/7] iproto: replace obuf by mpstream in execute.c imeevma 2018-11-28 13:10 ` Vladislav Shpilevoy 2018-11-29 10:53 ` Vladimir Davydov 2018-11-29 14:04 ` [tarantool-patches] " Vladislav Shpilevoy 2018-11-30 10:19 ` Vladimir Davydov 2018-11-30 10:45 ` Vladislav Shpilevoy 2018-11-30 10:55 ` Vladimir Davydov 2018-11-27 19:25 ` [tarantool-patches] [PATCH v3 7/7] sql: check new box.sql.execute() imeevma 2018-11-28 13:33 ` [tarantool-patches] [PATCH v3 2/7] box: add method dump_lua to port imeevma 2018-11-29 10:48 ` Vladimir Davydov 2018-11-28 13:45 ` [tarantool-patches] [PATCH v3 5/7] sql: create interface vstream imeevma 2018-11-28 18:25 ` [tarantool-patches] " Vladislav Shpilevoy 2018-11-28 13:50 ` [tarantool-patches] [PATCH v3 6/7] lua: create vstream implementation for Lua imeevma 2018-11-28 18:25 ` [tarantool-patches] " Vladislav Shpilevoy
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=58aa507b0bcb6bb884c1247c0b1ee52ffc0938b2.1543344471.git.imeevma@gmail.com \ --to=imeevma@tarantool.org \ --cc=tarantool-patches@freelists.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [tarantool-patches] [PATCH v3 1/7] box: store sql text and length in sql_request' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox