From: Imeev Mergen <imeevma@tarantool.org> To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>, tarantool-patches@freelists.org Cc: korablev@tarantool.org Subject: [tarantool-patches] Re: [PATCH v5 3/6] sql: Show currently set sql_default_engine Date: Thu, 31 Jan 2019 17:56:47 +0300 [thread overview] Message-ID: <0d1106e6-3f71-2650-2d06-2b8e5b881b5b@tarantool.org> (raw) In-Reply-To: <3ec5bc03-c10c-243f-fa51-ec471676a347@tarantool.org> Hi Thank you for review! Answer, fixes and patch below. On 1/30/19 4:57 PM, Vladislav Shpilevoy wrote: > > > On 29/01/2019 17:29, imeevma@tarantool.org wrote: >> After this patch, "PRAGMA sql_default_engine" called without >> arguments will return currently set sql_default_engine. >> --- >> src/box/sql/pragma.c | 18 +++++++++++++----- >> test/sql-tap/gh-2367-pragma.test.lua | 35 >> +++++++++++++++++++++++++++-------- >> 2 files changed, 40 insertions(+), 13 deletions(-) >> >> diff --git a/test/sql-tap/gh-2367-pragma.test.lua >> b/test/sql-tap/gh-2367-pragma.test.lua >> index c0792c9..90ecd56 100755 >> --- a/test/sql-tap/gh-2367-pragma.test.lua >> +++ b/test/sql-tap/gh-2367-pragma.test.lua >> +-- >> +-- gh-3832: Some statements do not return column type >> +-- >> +-- Check that "PRAGMA sql_default_engine" called without arguments >> +-- returns currently set sql_default_engine. >> test:do_catchsql_test( >> - "pragma-2.5", >> + "pragma-3.1", >> [[ >> - pragma sql_default_engine 1; >> + pragma sql_default_engine='vinyl'; >> + pragma sql_default_engine; >> ]], { >> - 1, 'near \"1\": syntax error' >> + -- <pragma-3.1> >> + 0, {'vinyl'} >> + -- <pragma-3.1> > > If a test does not fail, you should not use > test:do_catchsql_test. We have do_test for this. Fixed. > > Also, this file is named gh-2367-***, but you added > here a test for gh-3832. This is why it made no > sense to create a new file on each issue. Please, > rename it to pragma.test.lua. Fixed. Diff: commit bfae473ec8f64d21006525ffd02eeb05d7756448 Author: Mergen Imeev <imeevma@gmail.com> Date: Thu Jan 31 16:34:25 2019 +0300 Temporary: Review fix diff --git a/test/sql-tap/gh-2367-pragma.test.lua b/test/sql-tap/gh-2367-pragma.test.lua deleted file mode 100755 index 90ecd56..0000000 --- a/test/sql-tap/gh-2367-pragma.test.lua +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env tarantool -test = require("sqltester") - -test:plan(8) - -test:do_catchsql_test( - "pragma-1.3", - [[ - PRAGMA kek = 'ON'; - ]], { - 1, "no such pragma: KEK" - }) - ---- ---- gh-2199: SQL default engine pragma ---- -test:do_catchsql_test( - "pragma-2.1", - [[ - pragma sql_default_engine='creepy'; - ]], { - 1, "Space engine 'creepy' does not exist" -}) - -test:do_catchsql_test( - "pragma-2.2", - [[ - pragma sql_default_engine='vinyl'; - ]], { - 0 -}) - -test:do_catchsql_test( - "pragma-2.3", - [[ - pragma sql_default_engine='memtx'; - ]], { - 0 -}) - -test:do_catchsql_test( - "pragma-2.4", - [[ - pragma sql_default_engine 'memtx'; - ]], { - 1, 'near \"\'memtx\'\": syntax error' -}) - -test:do_catchsql_test( - "pragma-2.5", - [[ - pragma sql_default_engine 1; - ]], { - 1, 'near \"1\": syntax error' -}) - --- --- gh-3832: Some statements do not return column type --- --- Check that "PRAGMA sql_default_engine" called without arguments --- returns currently set sql_default_engine. -test:do_catchsql_test( - "pragma-3.1", - [[ - pragma sql_default_engine='vinyl'; - pragma sql_default_engine; - ]], { - -- <pragma-3.1> - 0, {'vinyl'} - -- <pragma-3.1> -}) - -test:do_catchsql_test( - "pragma-3.2", - [[ - pragma sql_default_engine='memtx'; - pragma sql_default_engine; - ]], { - -- <pragma-3.2> - 0, {'memtx'} - -- <pragma-3.2> -}) - -test:finish_test() diff --git a/test/sql-tap/pragma.test.lua b/test/sql-tap/pragma.test.lua new file mode 100755 index 0000000..a847547 --- /dev/null +++ b/test/sql-tap/pragma.test.lua @@ -0,0 +1,84 @@ +#!/usr/bin/env tarantool +test = require("sqltester") + +test:plan(8) + +test:do_catchsql_test( + "pragma-1.3", + [[ + PRAGMA kek = 'ON'; + ]], { + 1, "no such pragma: KEK" + }) + +--- +--- gh-2199: SQL default engine pragma +--- +test:do_catchsql_test( + "pragma-2.1", + [[ + pragma sql_default_engine='creepy'; + ]], { + 1, "Space engine 'creepy' does not exist" +}) + +test:do_catchsql_test( + "pragma-2.2", + [[ + pragma sql_default_engine='vinyl'; + ]], { + 0 +}) + +test:do_catchsql_test( + "pragma-2.3", + [[ + pragma sql_default_engine='memtx'; + ]], { + 0 +}) + +test:do_catchsql_test( + "pragma-2.4", + [[ + pragma sql_default_engine 'memtx'; + ]], { + 1, 'near \"\'memtx\'\": syntax error' +}) + +test:do_catchsql_test( + "pragma-2.5", + [[ + pragma sql_default_engine 1; + ]], { + 1, 'near \"1\": syntax error' +}) + +-- +-- gh-3832: Some statements do not return column type +-- +-- Check that "PRAGMA sql_default_engine" called without arguments +-- returns currently set sql_default_engine. +test:do_execsql_test( + "pragma-3.1", + [[ + pragma sql_default_engine='vinyl'; + pragma sql_default_engine; + ]], { + -- <pragma-3.1> + 'vinyl' + -- <pragma-3.1> +}) + +test:do_execsql_test( + "pragma-3.2", + [[ + pragma sql_default_engine='memtx'; + pragma sql_default_engine; + ]], { + -- <pragma-3.2> + 'memtx' + -- <pragma-3.2> +}) + +test:finish_test() Patch: commit 11e1d179228684a7ea776a2626b44ca3936d3d44 Author: Mergen Imeev <imeevma@gmail.com> Date: Wed Dec 12 22:47:48 2018 +0300 sql: Show currently set sql_default_engine After this patch, "PRAGMA sql_default_engine" called without arguments will return currently set sql_default_engine. diff --git a/src/box/sql/pragma.c b/src/box/sql/pragma.c index 476771d..5e276b4 100644 --- a/src/box/sql/pragma.c +++ b/src/box/sql/pragma.c @@ -582,12 +582,20 @@ sqlite3Pragma(Parse * pParse, Token * pId, /* First part of [schema.]id field */ } case PragTyp_DEFAULT_ENGINE: { - if (sql_default_engine_set(zRight) != 0) { - pParse->rc = SQL_TARANTOOL_ERROR; - pParse->nErr++; - goto pragma_out; + if (zRight == NULL) { + const char *engine_name = + sql_storage_engine_strs[current_session()-> + sql_default_engine]; + sqlite3VdbeLoadString(v, 1, engine_name); + sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); + } else { + if (sql_default_engine_set(zRight) != 0) { + pParse->rc = SQL_TARANTOOL_ERROR; + pParse->nErr++; + goto pragma_out; + } + sqlite3VdbeAddOp0(v, OP_Expire); } - sqlite3VdbeAddOp0(v, OP_Expire); break; } diff --git a/test/sql-tap/gh-2367-pragma.test.lua b/test/sql-tap/gh-2367-pragma.test.lua deleted file mode 100755 index c0792c9..0000000 --- a/test/sql-tap/gh-2367-pragma.test.lua +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env tarantool -test = require("sqltester") - -test:plan(7) - -test:do_catchsql_test( - "pragma-1.3", - [[ - PRAGMA kek = 'ON'; - ]], { - 1, "no such pragma: KEK" - }) - ---- ---- gh-2199: SQL default engine pragma ---- -test:do_catchsql_test( - "pragma-2.1", - [[ - pragma sql_default_engine='creepy'; - ]], { - 1, "Space engine 'creepy' does not exist" -}) - -test:do_catchsql_test( - "pragma-2.2", - [[ - pragma sql_default_engine='vinyl'; - ]], { - 0 -}) - -test:do_catchsql_test( - "pragma-2.3", - [[ - pragma sql_default_engine='memtx'; - ]], { - 0 -}) - -test:do_catchsql_test( - "pragma-2.4", - [[ - pragma sql_default_engine; - ]], { - 1, 'Illegal parameters, \'sql_default_engine\' was not specified' -}) - -test:do_catchsql_test( - "pragma-2.5", - [[ - pragma sql_default_engine 'memtx'; - ]], { - 1, 'near \"\'memtx\'\": syntax error' -}) - -test:do_catchsql_test( - "pragma-2.5", - [[ - pragma sql_default_engine 1; - ]], { - 1, 'near \"1\": syntax error' -}) - -test:finish_test() diff --git a/test/sql-tap/pragma.test.lua b/test/sql-tap/pragma.test.lua new file mode 100755 index 0000000..a847547 --- /dev/null +++ b/test/sql-tap/pragma.test.lua @@ -0,0 +1,84 @@ +#!/usr/bin/env tarantool +test = require("sqltester") + +test:plan(8) + +test:do_catchsql_test( + "pragma-1.3", + [[ + PRAGMA kek = 'ON'; + ]], { + 1, "no such pragma: KEK" + }) + +--- +--- gh-2199: SQL default engine pragma +--- +test:do_catchsql_test( + "pragma-2.1", + [[ + pragma sql_default_engine='creepy'; + ]], { + 1, "Space engine 'creepy' does not exist" +}) + +test:do_catchsql_test( + "pragma-2.2", + [[ + pragma sql_default_engine='vinyl'; + ]], { + 0 +}) + +test:do_catchsql_test( + "pragma-2.3", + [[ + pragma sql_default_engine='memtx'; + ]], { + 0 +}) + +test:do_catchsql_test( + "pragma-2.4", + [[ + pragma sql_default_engine 'memtx'; + ]], { + 1, 'near \"\'memtx\'\": syntax error' +}) + +test:do_catchsql_test( + "pragma-2.5", + [[ + pragma sql_default_engine 1; + ]], { + 1, 'near \"1\": syntax error' +}) + +-- +-- gh-3832: Some statements do not return column type +-- +-- Check that "PRAGMA sql_default_engine" called without arguments +-- returns currently set sql_default_engine. +test:do_execsql_test( + "pragma-3.1", + [[ + pragma sql_default_engine='vinyl'; + pragma sql_default_engine; + ]], { + -- <pragma-3.1> + 'vinyl' + -- <pragma-3.1> +}) + +test:do_execsql_test( + "pragma-3.2", + [[ + pragma sql_default_engine='memtx'; + pragma sql_default_engine; + ]], { + -- <pragma-3.2> + 'memtx' + -- <pragma-3.2> +}) + +test:finish_test()
next prev parent reply other threads:[~2019-01-31 14:56 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-01-29 14:29 [tarantool-patches] [PATCH v5 0/6] sql: set column types for EXPLAIN and PRAGMA imeevma 2019-01-29 14:29 ` [tarantool-patches] [PATCH v5 1/6] sql: remove unused macros from pragma.c and pragma.h imeevma 2019-01-30 13:57 ` [tarantool-patches] " Vladislav Shpilevoy 2019-01-31 14:56 ` Imeev Mergen 2019-01-29 14:29 ` [tarantool-patches] [PATCH v5 2/6] sql: fix "PRAGMA parser_trace" result imeevma 2019-01-30 13:57 ` [tarantool-patches] " Vladislav Shpilevoy 2019-01-31 14:56 ` Imeev Mergen 2019-02-04 13:06 ` Vladislav Shpilevoy 2019-02-09 10:08 ` Mergen Imeev 2019-01-29 14:29 ` [tarantool-patches] [PATCH v5 3/6] sql: Show currently set sql_default_engine imeevma 2019-01-30 13:57 ` [tarantool-patches] " Vladislav Shpilevoy 2019-01-31 14:56 ` Imeev Mergen [this message] 2019-01-29 14:29 ` [tarantool-patches] [PATCH v5 4/6] sql: fix "PRAGMA case_sensitive_like" result imeevma 2019-01-30 13:56 ` [tarantool-patches] " Vladislav Shpilevoy 2019-01-31 14:56 ` Imeev Mergen 2019-01-29 14:29 ` [tarantool-patches] [PATCH v5 5/6] sql: get results of PRAGMA statement in YAML format imeevma 2019-01-30 13:56 ` [tarantool-patches] " Vladislav Shpilevoy 2019-01-31 14:56 ` Imeev Mergen 2019-02-04 13:08 ` Vladislav Shpilevoy 2019-02-09 10:11 ` Mergen Imeev 2019-01-29 14:29 ` [tarantool-patches] [PATCH v5 6/6] sql: set column types for EXPLAIN and PRAGMA imeevma 2019-01-30 13:59 ` [tarantool-patches] Re: [PATCH v5 0/6] " Vladislav Shpilevoy 2019-01-31 14:56 ` Imeev Mergen 2019-02-15 20:44 ` 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=0d1106e6-3f71-2650-2d06-2b8e5b881b5b@tarantool.org \ --to=imeevma@tarantool.org \ --cc=korablev@tarantool.org \ --cc=tarantool-patches@freelists.org \ --cc=v.shpilevoy@tarantool.org \ --subject='[tarantool-patches] Re: [PATCH v5 3/6] sql: Show currently set sql_default_engine' \ /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