1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-08 14:02:16 +03:00

Change the fts5 multi-column syntax to use parenthesis instead of square brackets.

FossilOrigin-Name: ab85a6fc4f7580278fc9d1f0090fdcf0a90d065b
This commit is contained in:
dan
2015-06-02 19:38:15 +00:00
parent 167fd757f0
commit f67bb4a21b
6 changed files with 35 additions and 35 deletions

View File

@@ -154,8 +154,8 @@ static int fts5ExprGetToken(
switch( *z ){
case '(': tok = FTS5_LP; break;
case ')': tok = FTS5_RP; break;
case '[': tok = FTS5_LSP; break;
case ']': tok = FTS5_RSP; break;
case '{': tok = FTS5_LCP; break;
case '}': tok = FTS5_RCP; break;
case ':': tok = FTS5_COLON; break;
case ',': tok = FTS5_COMMA; break;
case '+': tok = FTS5_PLUS; break;

View File

@@ -106,7 +106,7 @@ cnearset(A) ::= colset(X) COLON nearset(Y). {
%type colsetlist {Fts5ExprColset*}
%destructor colsetlist { sqlite3_free($$); }
colset(A) ::= LSP colsetlist(X) RSP. { A = X; }
colset(A) ::= LCP colsetlist(X) RCP. { A = X; }
colset(A) ::= STRING(X). {
A = sqlite3Fts5ParseColset(pParse, 0, &X);
}

View File

@@ -258,20 +258,20 @@ foreach {tn2 sql} {
1.2 "y:a"
1.3 "x:b"
1.4 "y:b"
2.1 "[x]:a"
2.2 "[y]:a"
2.3 "[x]:b"
2.4 "[y]:b"
2.1 "{x}:a"
2.2 "{y}:a"
2.3 "{x}:b"
2.4 "{y}:b"
3.1 "[x y]:a"
3.2 "[y x]:a"
3.3 "[x x]:b"
3.4 "[y y]:b"
3.1 "{x y}:a"
3.2 "{y x}:a"
3.3 "{x x}:b"
3.4 "{y y}:b"
4.1 {["x" "y"]:a}
4.2 {["y" x]:a}
4.3 {[x "x"]:b}
4.4 {["y" y]:b}
4.1 {{"x" "y"}:a}
4.2 {{"y" x}:a}
4.3 {{x "x"}:b}
4.4 {{"y" y}:b}
} {
set res [matchdata 1 $expr]
do_execsql_test $tn2.3.$tn.[llength $res] {

View File

@@ -301,20 +301,20 @@ for {set fold 0} {$fold < 3} {incr fold} {
foreach {tn expr} {
A.1 { [a] : x }
A.2 { [a b] : x }
A.3 { [a b f] : x }
A.4 { [f a b] : x }
A.5 { [f a b] : x y }
A.6 { [f a b] : x + y }
A.7 { [c a b] : x + c }
A.8 { [c d] : "l m" }
A.9 { [c e] : "l m" }
A.1 { {a} : x }
A.2 { {a b} : x }
A.3 { {a b f} : x }
A.4 { {f a b} : x }
A.5 { {f a b} : x y }
A.6 { {f a b} : x + y }
A.7 { {c a b} : x + c }
A.8 { {c d} : "l m" }
A.9 { {c e} : "l m" }
B.1 { a NOT b }
B.2 { a NOT a:b }
B.3 { a OR (b AND c) }
B.4 { a OR (b AND [a b c]:c) }
B.4 { a OR (b AND {a b c}:c) }
B.5 { a OR "b c" }
B.6 { a OR b OR c }