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:
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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] {
|
||||
|
@@ -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 }
|
||||
|
||||
|
Reference in New Issue
Block a user