[tarantool-patches] [PATCH v1 1/1] sql: ban ANALYZE statement

imeevma at tarantool.org imeevma at tarantool.org
Fri Mar 22 19:14:03 MSK 2019


At this point, an ANALYZE statement can lead to many problems. It
was decided to temporarily ban this statement.

Closes #4069
---
https://github.com/tarantool/tarantool/issues/4069
https://github.com/tarantool/tarantool/tree/imeevma/gh-4069-ban-analyze

 src/box/box.cc               |  2 --
 src/box/sql/parse.y          |  4 ++--
 src/box/sql/sqlInt.h         |  1 -
 test/sql-tap/suite.ini       | 12 ++++++++++++
 test/sql-tap/whereG.test.lua |  6 ++++--
 test/sql/suite.ini           |  1 +
 6 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/box/box.cc b/src/box/box.cc
index f7ce33a..7d89055 100644
--- a/src/box/box.cc
+++ b/src/box/box.cc
@@ -2139,8 +2139,6 @@ box_cfg_xc(void)
 	/* Follow replica */
 	replicaset_follow();
 
-	sql_load_schema();
-
 	fiber_gc();
 	is_box_configured = true;
 
diff --git a/src/box/sql/parse.y b/src/box/sql/parse.y
index b27651c..03787d9 100644
--- a/src/box/sql/parse.y
+++ b/src/box/sql/parse.y
@@ -1448,8 +1448,8 @@ cmd ::= DROP TRIGGER ifexists(NOERR) fullname(X). {
 }
 
 /////////////////////////////////// ANALYZE ///////////////////////////////////
-cmd ::= ANALYZE.                {sqlAnalyze(pParse, 0);}
-cmd ::= ANALYZE nm(X).          {sqlAnalyze(pParse, &X);}
+cmd ::= ANALYZE.                {}
+cmd ::= ANALYZE nm(X).          {(void)X;}
 
 //////////////////////// ALTER TABLE table ... ////////////////////////////////
 cmd ::= ALTER TABLE fullname(X) RENAME TO nm(Z). {
diff --git a/src/box/sql/sqlInt.h b/src/box/sql/sqlInt.h
index 8967ea3..aebd131 100644
--- a/src/box/sql/sqlInt.h
+++ b/src/box/sql/sqlInt.h
@@ -4492,7 +4492,6 @@ char* rename_trigger(sql *, char const *, char const *, bool *);
  */
 struct coll *
 sql_get_coll_seq(Parse *parser, const char *name, uint32_t *coll_id);
-void sqlAnalyze(Parse *, Token *);
 
 /**
  * This function returns average size of tuple in given index.
diff --git a/test/sql-tap/suite.ini b/test/sql-tap/suite.ini
index bb49289..95207f4 100644
--- a/test/sql-tap/suite.ini
+++ b/test/sql-tap/suite.ini
@@ -8,6 +8,18 @@ disabled = selectA.test.lua ;
            date.test.lua ;
            tkt-bd484a090c.test.lua ;
            tkt3791.test.lua ;
+           analyze1.test.lua ;
+           analyze3.test.lua ;
+           analyze4.test.lua ;
+           analyze5.test.lua ;
+           analyze6.test.lua ;
+           analyze7.test.lua ;
+           analyze8.test.lua ;
+           analyze9.test.lua ;
+           analyzeC.test.lua ;
+           analyzeD.test.lua ;
+           analyzeE.test.lua ;
+           analyzeF.test.lua ;
 
 lua_libs = lua/sqltester.lua ../sql/lua/sql_tokenizer.lua ../box/lua/identifier.lua
 is_parallel = True
diff --git a/test/sql-tap/whereG.test.lua b/test/sql-tap/whereG.test.lua
index 155c906..bb9cf39 100755
--- a/test/sql-tap/whereG.test.lua
+++ b/test/sql-tap/whereG.test.lua
@@ -452,7 +452,9 @@ test:do_execsql_test(
         ANALYZE;
         EXPLAIN QUERY PLAN SELECT name FROM people WHERE height>=180;
     ]],
-    {0,0,0,"SEARCH TABLE PEOPLE USING COVERING INDEX PEOPLE_IDX1" ..
-        " (ANY(ROLE) AND HEIGHT>?)"})
+    -- {0,0,0,"SEARCH TABLE PEOPLE USING COVERING INDEX PEOPLE_IDX1" ..
+    --     " (ANY(ROLE) AND HEIGHT>?)"}
+    {0,0,0,"SCAN TABLE PEOPLE" }
+    )
 
 test:finish_test()
diff --git a/test/sql/suite.ini b/test/sql/suite.ini
index ce6ccb7..bfe0fa0 100644
--- a/test/sql/suite.ini
+++ b/test/sql/suite.ini
@@ -7,3 +7,4 @@ config = engine.cfg
 is_parallel = True
 lua_libs = lua/sql_tokenizer.lua
 release_disabled = errinj.test.lua view_delayed_wal.test.lua sql-debug.test.lua
+disabled = sql-statN-index-drop.test.lua
-- 
2.7.4





More information about the Tarantool-patches mailing list