[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