This is an automated email from the ASF dual-hosted git repository.
twice pushed a commit to branch unstable
in repository https://gitbox.apache.org/repos/asf/kvrocks.git
The following commit(s) were added to refs/heads/unstable by this push:
new 64de844c feat(search): add TAGGED as an alternative syntax to HASTAG
(#2692)
64de844c is described below
commit 64de844c08d5cd03ea733ea0af64dedc5956f9b9
Author: Twice <[email protected]>
AuthorDate: Thu Dec 12 19:38:36 2024 +0800
feat(search): add TAGGED as an alternative syntax to HASTAG (#2692)
Signed-off-by: PragmaTwice <[email protected]>
---
src/search/README.md | 1 +
src/search/sql_parser.h | 3 ++-
tests/cppunit/sql_parser_test.cc | 1 +
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/search/README.md b/src/search/README.md
index 022ec750..1fb4bbbe 100644
--- a/src/search/README.md
+++ b/src/search/README.md
@@ -32,3 +32,4 @@ Note that when interacting with users, we also refer to KQIR
as *Kvrocks Search*
- [KQIR: a query engine for Apache Kvrocks that supports both SQL and
RediSearch queries](https://kvrocks.apache.org/blog/kqir-query-engine)
- [Index encoding format for Kvrocks
Search](https://kvrocks.apache.org/community/kvrocks-search-index-encoding)
+- [User documentation of Kvrocks
Search](https://kvrocks.apache.org/docs/kvrocks-search)
diff --git a/src/search/sql_parser.h b/src/search/sql_parser.h
index 751b0b47..f90195bd 100644
--- a/src/search/sql_parser.h
+++ b/src/search/sql_parser.h
@@ -35,7 +35,8 @@ struct StringOrParam : sor<StringL, Param> {};
struct NumberOrParam : sor<Number, Param> {};
struct HasTag : string<'h', 'a', 's', 't', 'a', 'g'> {};
-struct HasTagExpr : WSPad<seq<Identifier, WSPad<HasTag>, StringOrParam>> {};
+struct Tagged : string<'t', 'a', 'g', 'g', 'e', 'd'> {};
+struct HasTagExpr : WSPad<seq<Identifier, WSPad<sor<HasTag, Tagged>>,
StringOrParam>> {};
struct NumericAtomExpr : WSPad<sor<NumberOrParam, Identifier>> {};
struct NumericCompareOp : sor<string<'!', '='>, string<'<', '='>, string<'>',
'='>, one<'=', '<', '>'>> {};
diff --git a/tests/cppunit/sql_parser_test.cc b/tests/cppunit/sql_parser_test.cc
index 9173d4c3..e7a47121 100644
--- a/tests/cppunit/sql_parser_test.cc
+++ b/tests/cppunit/sql_parser_test.cc
@@ -117,6 +117,7 @@ TEST(SQLParserTest, Simple) {
AssertIR(Parse("select a from b where y > 2"), "select a from b where y >
2");
AssertIR(Parse("select a from b where 3 >= z"), "select a from b where z <=
3");
AssertIR(Parse("select a from b where x hastag \"hi\""), "select a from b
where x hastag \"hi\"");
+ AssertIR(Parse("select a from b where x tagged \"hi\""), "select a from b
where x hastag \"hi\"");
AssertIR(Parse(R"(select a from b where x hastag "a\nb")"), R"(select a from
b where x hastag "a\nb")");
AssertIR(Parse(R"(select a from b where x hastag "")"), R"(select a from b
where x hastag "")");
AssertIR(Parse(R"(select a from b where x hastag "hello , hi")"), R"(select
a from b where x hastag "hello , hi")");