From: imeevma@tarantool.org
To: tarantool-patches@freelists.org, v.shpilevoy@tarantool.org
Cc: korablev@tarantool.org
Subject: [tarantool-patches] [PATCH v5 3/6] sql: Show currently set sql_default_engine
Date: Tue, 29 Jan 2019 17:29:41 +0300 [thread overview]
Message-ID: <afa6d1d84dc901192ae9230293709568961668cd.1548771900.git.imeevma@gmail.com> (raw)
In-Reply-To: <cover.1548771900.git.imeevma@gmail.com>
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/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
index c0792c9..90ecd56 100755
--- a/test/sql-tap/gh-2367-pragma.test.lua
+++ b/test/sql-tap/gh-2367-pragma.test.lua
@@ -1,7 +1,7 @@
#!/usr/bin/env tarantool
test = require("sqltester")
-test:plan(7)
+test:plan(8)
test:do_catchsql_test(
"pragma-1.3",
@@ -41,25 +41,44 @@ test:do_catchsql_test(
test:do_catchsql_test(
"pragma-2.4",
[[
- pragma sql_default_engine;
+ pragma sql_default_engine 'memtx';
]], {
- 1, 'Illegal parameters, \'sql_default_engine\' was not specified'
+ 1, 'near \"\'memtx\'\": syntax error'
})
test:do_catchsql_test(
"pragma-2.5",
[[
- pragma sql_default_engine 'memtx';
+ pragma sql_default_engine 1;
]], {
- 1, 'near \"\'memtx\'\": syntax error'
+ 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-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>
+})
+
+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()
--
2.7.4
next prev parent reply other threads:[~2019-01-29 14:29 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 ` imeevma [this message]
2019-01-30 13:57 ` [tarantool-patches] Re: [PATCH v5 3/6] sql: Show currently set sql_default_engine Vladislav Shpilevoy
2019-01-31 14:56 ` Imeev Mergen
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=afa6d1d84dc901192ae9230293709568961668cd.1548771900.git.imeevma@gmail.com \
--to=imeevma@tarantool.org \
--cc=korablev@tarantool.org \
--cc=tarantool-patches@freelists.org \
--cc=v.shpilevoy@tarantool.org \
--subject='Re: [tarantool-patches] [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