[tarantool-patches] [PATCH 3/6] test: fix sqltester methods to drop all tables/views
Nikita Pettik
korablev at tarantool.org
Mon Dec 10 00:30:23 MSK 2018
Since we are going to remove string of SQL "CREATE TABLE ..." statement
from space's opts, lets rework methods in sqltester to drop all tables
and views in order to avoid relying on this parameter.
Part of #2647
---
test/sql-tap/drop_all.test.lua | 4 ++--
test/sql-tap/identifier_case.test.lua | 6 +++---
test/sql-tap/lua/sqltester.lua | 38 ++++++++++++++---------------------
3 files changed, 20 insertions(+), 28 deletions(-)
diff --git a/test/sql-tap/drop_all.test.lua b/test/sql-tap/drop_all.test.lua
index 86a2587eb..b08daf87c 100755
--- a/test/sql-tap/drop_all.test.lua
+++ b/test/sql-tap/drop_all.test.lua
@@ -22,7 +22,7 @@ test:do_test(
test:do_test(
prefix.."-1.1",
function()
- return #test:drop_all_views()
+ return test:drop_all_views()
end,
N
)
@@ -30,7 +30,7 @@ test:do_test(
test:do_test(
prefix.."-1.1",
function()
- return #test:drop_all_tables()
+ return test:drop_all_tables()
end,
N
)
diff --git a/test/sql-tap/identifier_case.test.lua b/test/sql-tap/identifier_case.test.lua
index 9e8107aef..1d248f9dc 100755
--- a/test/sql-tap/identifier_case.test.lua
+++ b/test/sql-tap/identifier_case.test.lua
@@ -64,7 +64,7 @@ test:do_test(
test:do_test(
test_prefix.."1.3.3",
function ()
- return #test:drop_all_tables()
+ return test:drop_all_tables()
end,
3)
@@ -112,7 +112,7 @@ end
test:do_test(
test_prefix.."2.3.1",
function ()
- return #test:drop_all_tables()
+ return test:drop_all_tables()
end,
6)
@@ -152,7 +152,7 @@ end
test:do_test(
test_prefix.."3.2.1",
function ()
- return #test:drop_all_tables()
+ return test:drop_all_tables()
end,
1)
diff --git a/test/sql-tap/lua/sqltester.lua b/test/sql-tap/lua/sqltester.lua
index 8751ef820..672d2e67d 100644
--- a/test/sql-tap/lua/sqltester.lua
+++ b/test/sql-tap/lua/sqltester.lua
@@ -277,7 +277,7 @@ end
test.catchsql2 = catchsql2
-- Show the VDBE program for an SQL statement but omit the Trace
--- opcode at the beginning. This procedure can be used to prove
+-- opcode at the beginning. This procedure can be used to PROVE
-- that different SQL statements generate exactly the same VDBE code.
local function explain_no_trace(self, sql)
tr = execsql(self, "EXPLAIN "..sql)
@@ -288,35 +288,27 @@ local function explain_no_trace(self, sql)
end
test.explain_no_trace = explain_no_trace
json = require("json")
-function test.find_spaces_by_sql_statement(self, statement)
- local spaces = box.space._space:select{}
- local res = {}
- for _, space in ipairs(spaces) do
- local name_num = 3-- [3] is space name
- local options_num = 6-- [6] is space options
- if not space[name_num]:startswith("_") and space[options_num]["sql"] then
- if string.find(space[options_num]["sql"], statement) then
- table.insert(res, space[name_num])
- end
- end
- end
- return res
-end
function test.drop_all_tables(self)
- local tables = test:find_spaces_by_sql_statement("CREATE TABLE")
- for _, table in ipairs(tables) do
- test:execsql(string.format([[DROP TABLE "%s";]], table))
+ local entry_count = 0
+ for _, v in box.space._space:pairs() do
+ if v[1] >= 512 then
+ test:execsql(string.format([[DROP TABLE "%s";]], v[3]))
+ entry_count = entry_count + 1
+ end
end
- return tables
+ return entry_count
end
function test.drop_all_views(self)
- local views = test:find_spaces_by_sql_statement("CREATE VIEW")
- for _, view in ipairs(views) do
- test:execsql(string.format([[DROP VIEW "%s";]], view))
+ local entry_count = 0
+ for _, v in box.space._space:pairs() do
+ if v[1] > 512 and v[6]["view"] == true then
+ test:execsql(string.format([[DROP VIEW "%s";]], v[3]))
+ entry_count = entry_count + 1
+ end
end
- return views
+ return entry_count
end
function test.do_select_tests(self, label, tests)
--
2.15.1
More information about the Tarantool-patches
mailing list