From: "" <dmarc-noreply@freelists.org> (Redacted sender "gleb-skiba" for DMARC) To: alexander.turenko@tarantool.org Cc: tarantool-patches@freelists.org, korablev@tarantool.org, kyukhin@tarantool.org, Gleb <gleb-skiba@mail.ru> Subject: [tarantool-patches] [PATCH v3] sql: remove support of partial indexes Date: Thu, 26 Apr 2018 16:04:20 +0300 [thread overview] Message-ID: <1524747860-21708-1-git-send-email-gleb-skiba@mail.ru> (raw) From: Gleb <gleb-skiba@mail.ru> Remove support of partial indexes. Add test which checks inaccessibility of partial index syntax. Delete usage of partial index from tests. They can be enabled after #2626. Fixes #2165 --- Issue from https://github.com/tarantool/tarantool/issues/2165. Source from https://github.com/tarantool/tarantool/tree/gh-2165-remove-support-partial-indexes. Changes in v3: -return tests which use partial. -delete "WHERE" from returned tests. -correct syntax errors in commit src/box/sql/parse.y | 4 ++-- test/sql-tap/analyze9.test.lua | 2 +- test/sql-tap/autoindex4.test.lua | 2 +- test/sql-tap/fkey1.test.lua | 2 +- ...gh-2165-remove-support-partial-indexes.test.lua | 17 +++++++++++++++ test/sql-tap/index6.test.lua | 12 +++++------ test/sql-tap/index7.test.lua | 25 +++++++++++----------- 7 files changed, 41 insertions(+), 23 deletions(-) create mode 100755 test/sql-tap/gh-2165-remove-support-partial-indexes.test.lua diff --git a/src/box/sql/parse.y b/src/box/sql/parse.y index b078e20..e0b5a2e 100644 --- a/src/box/sql/parse.y +++ b/src/box/sql/parse.y @@ -1241,10 +1241,10 @@ paren_exprlist(A) ::= LP exprlist(X) RP. {A = X;} ///////////////////////////// The CREATE INDEX command /////////////////////// // cmd ::= createkw(S) uniqueflag(U) INDEX ifnotexists(NE) nm(X) - ON nm(Y) LP sortlist(Z) RP where_opt(W). { + ON nm(Y) LP sortlist(Z) RP. { sqlite3CreateIndex(pParse, &X, sqlite3SrcListAppend(pParse->db,0,&Y), Z, U, - &S, W, SQLITE_SO_ASC, NE, SQLITE_IDXTYPE_APPDEF); + &S, 0, SQLITE_SO_ASC, NE, SQLITE_IDXTYPE_APPDEF); } %type uniqueflag {int} diff --git a/test/sql-tap/analyze9.test.lua b/test/sql-tap/analyze9.test.lua index 4ce575e..3668211 100755 --- a/test/sql-tap/analyze9.test.lua +++ b/test/sql-tap/analyze9.test.lua @@ -1111,7 +1111,7 @@ test:do_test( test:execsql([[ DROP TABLE IF EXISTS t1; CREATE TABLE t1(id INTEGER PRIMARY KEY AUTOINCREMENT, a, b, c, d); - CREATE INDEX i1 ON t1(a, b) WHERE d IS NOT NULL; + CREATE INDEX i1 ON t1(a, b); INSERT INTO t1 VALUES(null, -1, -1, -1, NULL); INSERT INTO t1 SELECT null, 2*a,2*b,2*c,d FROM t1; INSERT INTO t1 SELECT null, 2*a,2*b,2*c,d FROM t1; diff --git a/test/sql-tap/autoindex4.test.lua b/test/sql-tap/autoindex4.test.lua index 45bae48..a567c5e 100755 --- a/test/sql-tap/autoindex4.test.lua +++ b/test/sql-tap/autoindex4.test.lua @@ -111,7 +111,7 @@ test:do_execsql_test( test:do_execsql_test( "autoindex4-3.1", [[ - CREATE INDEX Items_x1 ON Items(ItemName,Name) WHERE ItemName = 'dummy'; + CREATE INDEX Items_x1 ON Items(ItemName,Name); SELECT Items.ItemName FROM Items diff --git a/test/sql-tap/fkey1.test.lua b/test/sql-tap/fkey1.test.lua index 8749e1f..bca82d9 100755 --- a/test/sql-tap/fkey1.test.lua +++ b/test/sql-tap/fkey1.test.lua @@ -212,7 +212,7 @@ test:do_execsql_test( "fkey1-6.1", [[ CREATE TABLE p1(id PRIMARY KEY, x, y); - CREATE UNIQUE INDEX p1x ON p1(x) WHERE y<2; + CREATE INDEX p1x ON p1(x); INSERT INTO p1 VALUES(1, 1, 1); CREATE TABLE c1(a PRIMARY KEY REFERENCES p1(x)); ]], { diff --git a/test/sql-tap/gh-2165-remove-support-partial-indexes.test.lua b/test/sql-tap/gh-2165-remove-support-partial-indexes.test.lua new file mode 100755 index 0000000..d8210fc --- /dev/null +++ b/test/sql-tap/gh-2165-remove-support-partial-indexes.test.lua @@ -0,0 +1,17 @@ +#!/usr/bin/env tarantool +test = require("sqltester") + +test:plan(1) + + +test:do_catchsql_test( + "partial-index-1", + [[ + CREATE TABLE t1 (a INTEGER PRIMARY KEY, b INTEGER) + CREATE UNIQUE INDEX i ON t1 (a) WHERE a = 3; + ]], { + 1, "keyword \"CREATE\" is reserved" + }) + +--This test intended to be deleted in #2626 +test:finish_test() diff --git a/test/sql-tap/index6.test.lua b/test/sql-tap/index6.test.lua index 2aa97e8..069623f 100755 --- a/test/sql-tap/index6.test.lua +++ b/test/sql-tap/index6.test.lua @@ -225,7 +225,7 @@ test:do_execsql_test( "index6-6.0", [[ CREATE TABLE t6(a,b, PRIMARY KEY (a,b)); - CREATE INDEX t6b ON t6(b) WHERE b=1; + CREATE INDEX t6b ON t6(b); INSERT INTO t6(a,b) VALUES(123,456); SELECT * FROM t6; ]], { @@ -262,7 +262,7 @@ test:do_execsql_test( CREATE TABLE t7a(id primary key, x); CREATE TABLE t7b(id primary key, y); INSERT INTO t7a VALUES(1, 1); - CREATE INDEX t7ax ON t7a(x) WHERE x=99; + CREATE INDEX t7ax ON t7a(x); SELECT x,y FROM t7a LEFT JOIN t7b ON (x=99) ORDER BY x; ]], { -- <index6-7.0> @@ -318,7 +318,7 @@ test:do_execsql_test( [[ CREATE TABLE t8a(id primary key, a,b); CREATE TABLE t8b(id primary key, x,y); - CREATE INDEX i8c ON t8b(y) WHERE x = 'value'; + CREATE INDEX i8c ON t8b(y); INSERT INTO t8a VALUES(1, 1, 'one'); INSERT INTO t8a VALUES(2, 2, 'two'); @@ -364,7 +364,7 @@ if (0 > 0) "index6-9.1", [[ CREATE TABLE t9(a int, b int, c int); - CREATE INDEX t9ca ON t9(c,a) WHERE a in (10,12,20); + CREATE INDEX t9ca ON t9(c,a); INSERT INTO t9 VALUES(1,1,9),(10,2,35),(11,15,82),(20,19,5),(NULL,7,3); UPDATE t9 SET b=c WHERE a in (10,12,20); SELECT a,b,c,'|' FROM t9 ORDER BY a; @@ -379,7 +379,7 @@ test:do_execsql_test( [[ --DROP TABLE t9; CREATE TABLE t9(a int, b int, c int, PRIMARY KEY(a)); - CREATE INDEX t9ca ON t9(c,a) WHERE a in (10,12,20); + CREATE INDEX t9ca ON t9(c,a); INSERT INTO t9 VALUES(1,1,9),(10,2,35),(11,15,82),(20,19,5); UPDATE t9 SET b=c WHERE a in (10,12,20); SELECT a,b,c,'|' FROM t9 ORDER BY a; @@ -400,7 +400,7 @@ test:do_execsql_test( (2,3,4,5,6), (3,4,5,6,7), (1,2,3,8,9); - CREATE INDEX t10x ON t10(d) WHERE a=1 AND b=2 AND c=3; + CREATE INDEX t10x ON t10(d); SELECT e FROM t10 WHERE a=1 AND b=2 AND c=3 ORDER BY d; ]], { -- <index6-10.1> diff --git a/test/sql-tap/index7.test.lua b/test/sql-tap/index7.test.lua index c8f56eb..c194859 100755 --- a/test/sql-tap/index7.test.lua +++ b/test/sql-tap/index7.test.lua @@ -1,6 +1,6 @@ #!/usr/bin/env tarantool test = require("sqltester") -test:plan(5) +test:plan(4) --!./tcltestrunner.lua -- 2013-11-04 @@ -261,7 +261,7 @@ test:do_execsql_test( test:do_execsql_test( "index7-6.2", [[ - CREATE INDEX i4 ON t4(c) WHERE d='xyz'; + CREATE INDEX i4 ON t4(c); SELECT a,b,c,d FROM (SELECT a,b FROM t5 WHERE a=1 AND b='xyz'), t4 WHERE c='abc'; ]], { -- <index7-6.2> @@ -291,14 +291,15 @@ test:do_eqp_test( -- </index7-6.4> }) -test:do_catchsql_test( - "index7-6.5", - [[ - CREATE INDEX t5a ON t5(a) WHERE a=#1; - ]], { - -- <index7-6.5> - 1, [[near "#1": syntax error]] - -- </index7-6.5> - }) - +--test:do_catchsql_test( +-- "index7-6.5", +-- [[ +-- CREATE INDEX t5a ON t5(a) WHERE a=#1; +-- ]], { +-- -- <index7-6.5> +-- 1, [[near "#1": syntax error]] +-- -- </index7-6.5> +-- }) +-- this test checks incorrect syntax of partial indexes +-- to be enabled after #2626 test:finish_test() -- 2.7.4
next reply other threads:[~2018-04-26 13:04 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-04-26 13:04 Redacted sender "gleb-skiba" for DMARC [this message] -- strict thread matches above, loose matches on Subject: below -- 2018-04-25 11:00 Redacted sender "gleb-skiba" for DMARC 2018-04-24 18:39 Gleb
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=1524747860-21708-1-git-send-email-gleb-skiba@mail.ru \ --to=dmarc-noreply@freelists.org \ --cc=alexander.turenko@tarantool.org \ --cc=gleb-skiba@mail.ru \ --cc=korablev@tarantool.org \ --cc=kyukhin@tarantool.org \ --cc=tarantool-patches@freelists.org \ --subject='Re: [tarantool-patches] [PATCH v3] sql: remove support of partial indexes' \ /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