This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch rel/1.1
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.1 by this push:
new 55c6e464a3b [To rel/1.1] update tokens in IdentifierParser
55c6e464a3b is described below
commit 55c6e464a3b79b3a446ce9074780983692c8dada
Author: Liao Lanyu <[email protected]>
AuthorDate: Thu Jul 13 09:13:18 2023 +0800
[To rel/1.1] update tokens in IdentifierParser
---
.../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 5 +++++
.../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 20 ++++++++++++++++----
.../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 18 ++++++++++++------
.../db/it/IoTDBSyntaxConventionIdentifierIT.java | 12 ++++++++++++
.../apache/iotdb/db/mpp/plan/parser/ASTVisitor.java | 2 +-
5 files changed, 46 insertions(+), 11 deletions(-)
diff --git
a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IdentifierParser.g4
b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IdentifierParser.g4
index a82da138e68..1f90e05b1c4 100644
--- a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IdentifierParser.g4
+++ b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IdentifierParser.g4
@@ -47,6 +47,7 @@ keyWords
| ATTRIBUTES
| BEFORE
| BEGIN
+ | BETWEEN
| BLOCKED
| BOUNDARY
| BY
@@ -103,10 +104,12 @@ keyWords
| GRANT
| GROUP
| HAVING
+ | IN
| INDEX
| INFO
| INSERT
| INTO
+ | IS
| KILL
| LABEL
| LAST
@@ -160,6 +163,7 @@ keyWords
| RANGE
| READONLY
| REGEXP
+ | REGION
| REGIONID
| REGIONS
| REMOVE
@@ -190,6 +194,7 @@ keyWords
| TAGS
| TASK
| TEMPLATE
+ | TEMPLATES
| TIMEOUT
| TIMESERIES
| TIMEPARTITION
diff --git a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
index a34c1275bdb..712b99971ea 100644
--- a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
+++ b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
@@ -377,7 +377,7 @@ showSchemaTemplates
// Show Measurements In Schema Template
showNodesInSchemaTemplate
- : SHOW NODES OPERATOR_IN SCHEMA TEMPLATE templateName=identifier
+ : SHOW NODES operator_in SCHEMA TEMPLATE templateName=identifier
;
// Show Paths Set Schema Template
@@ -957,9 +957,9 @@ expression
| leftExpression=expression (PLUS | MINUS) rightExpression=expression
| leftExpression=expression (OPERATOR_GT | OPERATOR_GTE | OPERATOR_LT |
OPERATOR_LTE | OPERATOR_SEQ | OPERATOR_DEQ | OPERATOR_NEQ)
rightExpression=expression
| unaryBeforeRegularOrLikeExpression=expression operator_not? (REGEXP |
LIKE) STRING_LITERAL
- | firstExpression=expression operator_not? OPERATOR_BETWEEN
secondExpression=expression operator_and thirdExpression=expression
- | unaryBeforeIsNullExpression=expression OPERATOR_IS operator_not?
null_literal
- | unaryBeforeInExpression=expression operator_not? (OPERATOR_IN |
operator_contains) LR_BRACKET constant (COMMA constant)* RR_BRACKET
+ | firstExpression=expression operator_not? operator_between
secondExpression=expression operator_and thirdExpression=expression
+ | unaryBeforeIsNullExpression=expression operator_is operator_not?
null_literal
+ | unaryBeforeInExpression=expression operator_not? (operator_in |
operator_contains) LR_BRACKET constant (COMMA constant)* RR_BRACKET
| leftExpression=expression operator_and rightExpression=expression
| leftExpression=expression operator_or rightExpression=expression
;
@@ -999,6 +999,18 @@ operator_contains
: CONTAINS
;
+operator_between
+ : BETWEEN
+ ;
+
+operator_is
+ : IS
+ ;
+
+operator_in
+ : IN
+ ;
+
null_literal
: NULL
;
diff --git a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
index 489455c2df8..153d2b85afd 100644
--- a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
+++ b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
@@ -97,6 +97,10 @@ BEGIN
: B E G I N
;
+BETWEEN
+ : B E T W E E N
+ ;
+
BLOCKED
: B L O C K E D
;
@@ -314,6 +318,10 @@ HAVING
: H A V I N G
;
+IN
+ : I N
+ ;
+
INDEX
: I N D E X
;
@@ -330,6 +338,10 @@ INTO
: I N T O
;
+IS
+ : I S
+ ;
+
KILL
: K I L L
;
@@ -982,12 +994,6 @@ OPERATOR_LT : '<';
OPERATOR_LTE : '<=';
OPERATOR_NEQ : '!=' | '<>';
-OPERATOR_BETWEEN : B E T W E E N;
-
-OPERATOR_IS : I S;
-
-OPERATOR_IN : I N;
-
OPERATOR_BITWISE_AND : '&';
OPERATOR_LOGICAL_AND : '&&';
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
index 15fee230b26..9b540c38363 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
@@ -145,6 +145,9 @@ public class IoTDBSyntaxConventionIdentifierIT {
String[] createNodeNames = {
"a_1",
"aaa",
+ "in",
+ "between",
+ "is",
"`select`",
"`a.b`",
"`111`",
@@ -172,6 +175,9 @@ public class IoTDBSyntaxConventionIdentifierIT {
String[] resultTimeseries = {
"root.sg1.d1.a_1",
"root.sg1.d1.aaa",
+ "root.sg1.d1.in",
+ "root.sg1.d1.between",
+ "root.sg1.d1.is",
"root.sg1.d1.select",
"root.sg1.d1.`a.b`",
"root.sg1.d1.`111`",
@@ -199,6 +205,9 @@ public class IoTDBSyntaxConventionIdentifierIT {
String[] selectNodeNames = {
"a_1",
"aaa",
+ "in",
+ "between",
+ "is",
"`select`",
"`a.b`",
"`111`",
@@ -226,6 +235,9 @@ public class IoTDBSyntaxConventionIdentifierIT {
String[] suffixInResultColumns = {
"a_1",
"aaa",
+ "in",
+ "between",
+ "is",
"select",
"`a.b`",
"`111`",
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
index 0408e655f07..c64b16634be 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
@@ -2285,7 +2285,7 @@ public class ASTVisitor extends
IoTDBSqlParserBaseVisitor<Statement> {
Expression secondExpression = parseExpression(context.secondExpression,
canUseFullPath);
Expression thirdExpression = parseExpression(context.thirdExpression,
canUseFullPath);
- if (context.OPERATOR_BETWEEN() != null) {
+ if (context.operator_between() != null) {
return new BetweenExpression(
firstExpression, secondExpression, thirdExpression,
context.operator_not() != null);
}