From: imeevma@tarantool.org To: tarantool-patches@freelists.org, v.shpilevoy@tarantool.org Subject: [tarantool-patches] [PATCH v1 01/10] box: store sql text and length in sql_request Date: Sat, 17 Nov 2018 17:03:52 +0300 [thread overview] Message-ID: <21dcd5200ae069fe2daede343fbeff9dd691ae62.1542460773.git.imeevma@gmail.com> (raw) In-Reply-To: <cover.1542460773.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, 6 insertions(+), 2 deletions(-) diff --git a/src/box/execute.c b/src/box/execute.c index e450444..ce9dd83 100644 --- a/src/box/execute.c +++ b/src/box/execute.c @@ -285,6 +285,9 @@ error: return -1; } else { request->sql_text = value; + request->sql_text = + mp_decode_str(&request->sql_text, + &request->sql_text_len); } } if (request->sql_text == NULL) { @@ -586,8 +589,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-17 14:03 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-11-17 14:03 [tarantool-patches] [PATCH v1 00/10] sql: remove box.sql.execute imeevma 2018-11-17 14:03 ` imeevma [this message] 2018-11-17 14:03 ` [tarantool-patches] [PATCH v1 02/10] iproto: remove iproto functions from execute.c imeevma 2018-11-19 17:58 ` [tarantool-patches] " Vladislav Shpilevoy 2018-11-17 14:03 ` [tarantool-patches] [PATCH v1 03/10] iproto: replace obuf by mpstream in execute.c imeevma 2018-11-17 14:03 ` [tarantool-patches] [PATCH v1 04/10] sql: create interface vstream imeevma 2018-11-19 17:58 ` [tarantool-patches] " Vladislav Shpilevoy 2018-11-17 14:03 ` [tarantool-patches] [PATCH v1 05/10] sql: EXPLAIN through net.box leads to SEGFAULT imeevma 2018-11-19 13:47 ` [tarantool-patches] " Vladislav Shpilevoy 2018-11-17 14:04 ` [tarantool-patches] [PATCH v1 06/10] sql: SELECT from system spaces returns unpacked msgpack imeevma 2018-11-19 13:48 ` [tarantool-patches] " Vladislav Shpilevoy 2018-11-17 14:04 ` [tarantool-patches] [PATCH v1 07/10] sql: too many autogenerated ids leads to SEGFAULT imeevma 2018-11-19 13:47 ` [tarantool-patches] " Vladislav Shpilevoy 2018-11-17 14:04 ` [tarantool-patches] [PATCH v1 08/10] box: add method dump_lua to port imeevma 2018-11-17 14:04 ` [tarantool-patches] [PATCH v1 09/10] lua: create vstream implementation for Lua imeevma 2018-11-19 17:58 ` [tarantool-patches] " Vladislav Shpilevoy 2018-11-17 14:04 ` [tarantool-patches] [PATCH v1 10/10] sql: check new box.sql.execute() imeevma 2018-11-19 12:54 ` [tarantool-patches] Re: [PATCH v1 00/10] sql: remove box.sql.execute 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=21dcd5200ae069fe2daede343fbeff9dd691ae62.1542460773.git.imeevma@gmail.com \ --to=imeevma@tarantool.org \ --cc=tarantool-patches@freelists.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [tarantool-patches] [PATCH v1 01/10] 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