This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 7a1f530acac update tokens in IdentifierParser
7a1f530acac is described below
commit 7a1f530acac28e85128e1c975bc66b9a7ff70a32
Author: Liao Lanyu <[email protected]>
AuthorDate: Thu Jul 13 09:12:17 2023 +0800
update tokens in IdentifierParser
---
.../db/it/IoTDBSyntaxConventionIdentifierIT.java | 12 ++++++++++++
.../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 4 ++++
.../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 20 ++++++++++++++++----
.../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 18 ++++++++++++------
.../iotdb/db/queryengine/plan/parser/ASTVisitor.java | 2 +-
5 files changed, 45 insertions(+), 11 deletions(-)
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 2dac13668aa..54cde136ec8 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/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IdentifierParser.g4
b/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IdentifierParser.g4
index c9e5a54a8e3..896165c40b1 100644
---
a/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IdentifierParser.g4
+++
b/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IdentifierParser.g4
@@ -48,6 +48,7 @@ keyWords
| AUTO
| BEFORE
| BEGIN
+ | BETWEEN
| BLOCKED
| BOUNDARY
| BY
@@ -107,10 +108,12 @@ keyWords
| GRANT
| GROUP
| HAVING
+ | IN
| INDEX
| INFO
| INSERT
| INTO
+ | IS
| KILL
| LABEL
| LAST
@@ -204,6 +207,7 @@ keyWords
| TAGS
| TASK
| TEMPLATE
+ | TEMPLATES
| THEN
| THROTTLE
| TIMEOUT
diff --git
a/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
b/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
index e076489c2ea..c9d66ee181e 100644
---
a/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
+++
b/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
@@ -274,7 +274,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
@@ -1146,9 +1146,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
;
@@ -1199,6 +1199,18 @@ operator_contains
: CONTAINS
;
+operator_between
+ : BETWEEN
+ ;
+
+operator_is
+ : IS
+ ;
+
+operator_in
+ : IN
+ ;
+
null_literal
: NULL
;
diff --git
a/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
b/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
index 4ab2ffbc495..0d66cbc8033 100644
--- a/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
+++ b/iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
@@ -109,6 +109,10 @@ BEGIN
: B E G I N
;
+BETWEEN
+ : B E T W E E N
+ ;
+
BLOCKED
: B L O C K E D
;
@@ -334,6 +338,10 @@ HAVING
: H A V I N G
;
+IN
+ : I N
+ ;
+
INDEX
: I N D E X
;
@@ -350,6 +358,10 @@ INTO
: I N T O
;
+IS
+ : I S
+ ;
+
KILL
: K I L L
;
@@ -1001,12 +1013,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/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
index 6eef6e61832..e3b27b0402e 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
@@ -2648,7 +2648,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);
}