Index: ext/fts5/fts5_expr.c ================================================================== --- ext/fts5/fts5_expr.c +++ ext/fts5/fts5_expr.c @@ -152,12 +152,12 @@ pToken->p = z; pToken->n = 1; 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; case '*': tok = FTS5_STAR; break; case '\0': tok = FTS5_EOF; break; Index: ext/fts5/fts5parse.y ================================================================== --- ext/fts5/fts5parse.y +++ ext/fts5/fts5parse.y @@ -104,11 +104,11 @@ %type colset {Fts5ExprColset*} %destructor colset { sqlite3_free($$); } %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); } colsetlist(A) ::= colsetlist(Y) STRING(X). { Index: ext/fts5/test/fts5ac.test ================================================================== --- ext/fts5/test/fts5ac.test +++ ext/fts5/test/fts5ac.test @@ -256,24 +256,24 @@ foreach {tn expr} { 1.1 "x:a" 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" - - 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} + 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" + + 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] { SELECT rowid, fts5_test_poslist(xx) FROM xx WHERE xx match $expr } $res Index: ext/fts5/test/fts5auto.test ================================================================== --- ext/fts5/test/fts5auto.test +++ ext/fts5/test/fts5auto.test @@ -299,24 +299,24 @@ } execsql COMMIT 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 } C.1 { a OR (b AND "b c") } C.2 { a OR (b AND "z c") }