This is an automated email from the ASF dual-hosted git repository.

shuwenwei pushed a commit to branch calc_commons
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/calc_commons by this push:
     new 8f9dc14f825 move ReservedIdentifiers
8f9dc14f825 is described below

commit 8f9dc14f825c7f67cc3655bf970524914e8b2bfe
Author: shuwenwei <[email protected]>
AuthorDate: Thu Apr 16 17:49:44 2026 +0800

    move ReservedIdentifiers
---
 .../plan/relational/sql/ast/JoinOn.java            |  7 +-
 .../plan/relational/sql/ast/JoinUsing.java         |  7 +-
 .../plan/relational/sql/ast/NaturalJoin.java       |  5 +-
 .../sql/parser/CaseInsensitiveStream.java          |  2 +-
 .../sql/util/CommonQuerySqlFormatter.java          | 27 ++++---
 .../relational/sql/util/ExpressionFormatter.java   |  5 +-
 .../relational/sql/util/ReservedIdentifiers.java   | 84 ++++++++++++++++++++++
 .../relational/sql/util/RowPatternFormatter.java   |  3 +-
 .../InformationSchemaContentSupplierFactory.java   |  2 +-
 .../relational/analyzer/ExpressionAnalyzer.java    |  2 +-
 .../relational/analyzer/StatementAnalyzer.java     |  6 +-
 .../plan/relational/planner/RelationPlanner.java   |  4 +-
 .../plan/relational/sql/ast/AsofJoinOn.java        |  1 +
 .../sql/ast/DefaultTraversalVisitor.java           |  1 +
 .../relational/sql/ast/StackableAstVisitor.java    |  6 +-
 .../plan/relational/sql/parser/AstBuilder.java     |  6 +-
 .../plan/relational/sql/parser/SqlParser.java      |  1 +
 .../relational/sql/util/DataNodeSqlFormatter.java  |  1 +
 .../relational/sql/util/ReservedIdentifiers.java   | 49 -------------
 19 files changed, 120 insertions(+), 99 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinOn.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/JoinOn.java
similarity index 86%
rename from 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinOn.java
rename to 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/JoinOn.java
index 0da1a8f5137..8e1100ceabf 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinOn.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/JoinOn.java
@@ -17,12 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.queryengine.plan.relational.sql.ast;
-
-import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.AstMemoryEstimationHelper;
-import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Expression;
-import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinCriteria;
-import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Node;
+package org.apache.iotdb.db.node_commons.plan.relational.sql.ast;
 
 import com.google.common.collect.ImmutableList;
 import org.apache.tsfile.utils.RamUsageEstimator;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinUsing.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/JoinUsing.java
similarity index 85%
rename from 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinUsing.java
rename to 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/JoinUsing.java
index f455c04359c..bfa78f32ab9 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinUsing.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/JoinUsing.java
@@ -17,12 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.queryengine.plan.relational.sql.ast;
-
-import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.AstMemoryEstimationHelper;
-import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Identifier;
-import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinCriteria;
-import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Node;
+package org.apache.iotdb.db.node_commons.plan.relational.sql.ast;
 
 import com.google.common.collect.ImmutableList;
 import org.apache.tsfile.utils.RamUsageEstimator;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NaturalJoin.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/NaturalJoin.java
similarity index 88%
rename from 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NaturalJoin.java
rename to 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/NaturalJoin.java
index 46551a913d6..efe1bfde4ed 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NaturalJoin.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/NaturalJoin.java
@@ -17,10 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.queryengine.plan.relational.sql.ast;
-
-import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinCriteria;
-import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Node;
+package org.apache.iotdb.db.node_commons.plan.relational.sql.ast;
 
 import com.google.common.collect.ImmutableList;
 import org.apache.tsfile.utils.RamUsageEstimator;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/CaseInsensitiveStream.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/parser/CaseInsensitiveStream.java
similarity index 96%
rename from 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/CaseInsensitiveStream.java
rename to 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/parser/CaseInsensitiveStream.java
index ff7185d0868..774e761f626 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/CaseInsensitiveStream.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/parser/CaseInsensitiveStream.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.queryengine.plan.relational.sql.parser;
+package org.apache.iotdb.db.node_commons.plan.relational.sql.parser;
 
 import org.antlr.v4.runtime.CharStream;
 import org.antlr.v4.runtime.IntStream;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/CommonQuerySqlFormatter.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/CommonQuerySqlFormatter.java
similarity index 95%
rename from 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/CommonQuerySqlFormatter.java
rename to 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/CommonQuerySqlFormatter.java
index 32aa0616fdf..fa2a9542f97 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/CommonQuerySqlFormatter.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/CommonQuerySqlFormatter.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.queryengine.plan.relational.sql.util;
+package org.apache.iotdb.db.node_commons.plan.relational.sql.util;
 
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.AliasedRelation;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.AllColumns;
@@ -29,7 +29,10 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Identifier;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Intersect;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Join;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinCriteria;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinOn;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinUsing;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Limit;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.NaturalJoin;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Node;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Offset;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.OrderBy;
@@ -50,11 +53,7 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.TableSubquery;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Union;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Values;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.WithQuery;
-import 
org.apache.iotdb.db.node_commons.plan.relational.sql.util.ExpressionFormatter;
 import org.apache.iotdb.db.node_commons.plan.statement.component.FillPolicy;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinOn;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinUsing;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NaturalJoin;
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Strings;
@@ -70,7 +69,7 @@ import static 
com.google.common.collect.Iterables.getOnlyElement;
 import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.joining;
 import static 
org.apache.iotdb.db.node_commons.plan.relational.sql.util.ExpressionFormatter.formatOrderBy;
-import static 
org.apache.iotdb.db.queryengine.plan.relational.sql.util.RowPatternFormatter.formatPattern;
+import static 
org.apache.iotdb.db.node_commons.plan.relational.sql.util.RowPatternFormatter.formatPattern;
 
 public class CommonQuerySqlFormatter implements CommonQueryAstVisitor<Void, 
Integer> {
 
@@ -654,8 +653,7 @@ public class CommonQuerySqlFormatter implements 
CommonQueryAstVisitor<Void, Inte
               "missing identifier in AFTER MATCH SKIP TO LAST");
           skipTo =
               "AFTER MATCH SKIP TO LAST "
-                  + formatExpression(
-                  node.getAfterMatchSkipTo().get().getIdentifier().get());
+                  + 
formatExpression(node.getAfterMatchSkipTo().get().getIdentifier().get());
           break;
         case FIRST:
           checkState(
@@ -663,8 +661,7 @@ public class CommonQuerySqlFormatter implements 
CommonQueryAstVisitor<Void, Inte
               "missing identifier in AFTER MATCH SKIP TO FIRST");
           skipTo =
               "AFTER MATCH SKIP TO FIRST "
-                  + formatExpression(
-                  node.getAfterMatchSkipTo().get().getIdentifier().get());
+                  + 
formatExpression(node.getAfterMatchSkipTo().get().getIdentifier().get());
           break;
         default:
           throw new IllegalStateException("unexpected skipTo: " + 
node.getAfterMatchSkipTo().get());
@@ -681,11 +678,11 @@ public class CommonQuerySqlFormatter implements 
CommonQueryAstVisitor<Void, Inte
                       formatExpression(subset.getName())
                           + " = "
                           + subset.getIdentifiers().stream()
-                          .map(
-                              
org.apache.iotdb.db.node_commons.plan.relational.sql.util
-                                  .ExpressionFormatter
-                                  ::formatExpression)
-                          .collect(joining(", ", "(", ")")))
+                              .map(
+                                  
org.apache.iotdb.db.node_commons.plan.relational.sql.util
+                                          .ExpressionFormatter
+                                      ::formatExpression)
+                              .collect(joining(", ", "(", ")")))
               
.collect(com.google.common.collect.ImmutableList.toImmutableList()),
           indent + 2);
     }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/ExpressionFormatter.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/ExpressionFormatter.java
index f710a183254..513eca0f70b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/ExpressionFormatter.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/ExpressionFormatter.java
@@ -82,7 +82,6 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Window;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.WindowFrame;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.WindowReference;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.WindowSpecification;
-import 
org.apache.iotdb.db.queryengine.plan.relational.sql.util.CommonQuerySqlFormatter;
 
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
@@ -100,8 +99,8 @@ import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.joining;
 import static java.util.stream.Collectors.toList;
 import static 
org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction.DATE_BIN;
-import static 
org.apache.iotdb.db.queryengine.plan.relational.sql.util.CommonQuerySqlFormatter.formatName;
-import static 
org.apache.iotdb.db.queryengine.plan.relational.sql.util.ReservedIdentifiers.reserved;
+import static 
org.apache.iotdb.db.node_commons.plan.relational.sql.util.CommonQuerySqlFormatter.formatName;
+import static 
org.apache.iotdb.db.node_commons.plan.relational.sql.util.ReservedIdentifiers.reserved;
 
 public final class ExpressionFormatter {
 
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/ReservedIdentifiers.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/ReservedIdentifiers.java
new file mode 100644
index 00000000000..032bac80769
--- /dev/null
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/ReservedIdentifiers.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.node_commons.plan.relational.sql.util;
+
+import 
org.apache.iotdb.db.node_commons.plan.relational.sql.parser.CaseInsensitiveStream;
+import 
org.apache.iotdb.db.node_commons.plan.relational.sql.parser.ParsingException;
+import org.apache.iotdb.db.relational.grammar.sql.RelationalSqlLexer;
+import org.apache.iotdb.db.relational.grammar.sql.RelationalSqlParser;
+
+import org.antlr.v4.runtime.ANTLRErrorListener;
+import org.antlr.v4.runtime.BaseErrorListener;
+import org.antlr.v4.runtime.CharStreams;
+import org.antlr.v4.runtime.CommonTokenStream;
+import org.antlr.v4.runtime.RecognitionException;
+import org.antlr.v4.runtime.Recognizer;
+import org.antlr.v4.runtime.Token;
+
+import java.util.Set;
+
+import static com.google.common.collect.ImmutableSet.toImmutableSet;
+import static 
org.apache.iotdb.db.relational.grammar.sql.RelationalSqlKeywords.sqlKeywords;
+
+public final class ReservedIdentifiers {
+
+  private static final ANTLRErrorListener ERROR_LISTENER =
+      new BaseErrorListener() {
+        @Override
+        public void syntaxError(
+            Recognizer<?, ?> recognizer,
+            Object offendingSymbol,
+            int line,
+            int charPositionInLine,
+            String message,
+            RecognitionException e) {
+          throw new ParsingException(message, e, line, charPositionInLine + 1);
+        }
+      };
+
+  private ReservedIdentifiers() {}
+
+  public static Set<String> reservedIdentifiers() {
+    return sqlKeywords().stream()
+        .filter(ReservedIdentifiers::reserved)
+        .sorted()
+        .collect(toImmutableSet());
+  }
+
+  public static boolean reserved(final String name) {
+    try {
+      RelationalSqlLexer lexer =
+          new RelationalSqlLexer(new 
CaseInsensitiveStream(CharStreams.fromString(name)));
+      CommonTokenStream tokenStream = new CommonTokenStream(lexer);
+      RelationalSqlParser parser = new RelationalSqlParser(tokenStream);
+
+      lexer.removeErrorListeners();
+      lexer.addErrorListener(ERROR_LISTENER);
+
+      parser.removeErrorListeners();
+      parser.addErrorListener(ERROR_LISTENER);
+
+      parser.identifier();
+      return parser.getCurrentToken().getType() != Token.EOF;
+    } catch (final ParsingException ignored) {
+      return true;
+    }
+  }
+}
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/RowPatternFormatter.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/RowPatternFormatter.java
similarity index 97%
rename from 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/RowPatternFormatter.java
rename to 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/RowPatternFormatter.java
index c25057d15a0..e74c5e03e08 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/RowPatternFormatter.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/util/RowPatternFormatter.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.queryengine.plan.relational.sql.util;
+package org.apache.iotdb.db.node_commons.plan.relational.sql.util;
 
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.AnchorPattern;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.CommonQueryAstVisitor;
@@ -34,7 +34,6 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.RangeQuantifier;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.RowPattern;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.ZeroOrMoreQuantifier;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.ZeroOrOneQuantifier;
-import 
org.apache.iotdb.db.node_commons.plan.relational.sql.util.ExpressionFormatter;
 
 import static java.util.stream.Collectors.joining;
 
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
index 78988754457..288c686a4e6 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
@@ -72,6 +72,7 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.function.TableBuiltinTab
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.ComparisonExpression;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Expression;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.StringLiteral;
+import 
org.apache.iotdb.db.node_commons.plan.relational.sql.util.ReservedIdentifiers;
 import org.apache.iotdb.db.pipe.metric.overview.PipeDataNodeSinglePipeMetrics;
 import org.apache.iotdb.db.protocol.client.ConfigNodeClient;
 import org.apache.iotdb.db.protocol.client.ConfigNodeClientManager;
@@ -86,7 +87,6 @@ import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter;
 import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode;
 import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableDiskUsageInformationSchemaTableScanNode;
 import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl;
-import 
org.apache.iotdb.db.queryengine.plan.relational.sql.util.ReservedIdentifiers;
 import org.apache.iotdb.db.relational.grammar.sql.RelationalSqlKeywords;
 import org.apache.iotdb.db.schemaengine.table.InformationSchemaUtils;
 import org.apache.iotdb.db.storageengine.dataregion.DataRegion;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalyzer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalyzer.java
index 039fcbbf6dd..e32f3764e4f 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalyzer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalyzer.java
@@ -78,7 +78,6 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.RowPattern;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.SearchedCaseExpression;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.SimpleCaseExpression;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.SortItem;
-import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.StackableAstVisitor;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.StringLiteral;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.SubqueryExpression;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.SubsetDefinition;
@@ -102,6 +101,7 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
 import 
org.apache.iotdb.db.queryengine.plan.relational.metadata.OperatorNotFoundException;
 import 
org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName;
 import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl;
+import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StackableAstVisitor;
 
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.ImmutableList;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java
index 258407ee5b8..41e833cba64 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java
@@ -61,12 +61,15 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.IsNotNullPredica
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.IsNullPredicate;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Join;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinCriteria;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinOn;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinUsing;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.LikePredicate;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Limit;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Literal;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.LogicalExpression;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.LongLiteral;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.MeasureDefinition;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.NaturalJoin;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Node;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.NotExpression;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.NullIfExpression;
@@ -171,10 +174,7 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Insert;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRow;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRows;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertTablet;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinOn;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinUsing;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NaturalJoin;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PipeEnriched;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Property;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RenameColumn;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
index 1dd87458570..c82bead621c 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
@@ -61,6 +61,8 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Identifier;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Intersect;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Join;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinCriteria;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinOn;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinUsing;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.LogicalExpression;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.MeasureDefinition;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Node;
@@ -125,8 +127,6 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRow;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRows;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertTablet;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinOn;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinUsing;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PipeEnriched;
 import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AsofJoinOn.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AsofJoinOn.java
index 0669aa2361e..8cd5249d1ea 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AsofJoinOn.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AsofJoinOn.java
@@ -25,6 +25,7 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.AstMemoryEstimat
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.ComparisonExpression;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Expression;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinCriteria;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinOn;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.LogicalExpression;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.LongLiteral;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Node;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultTraversalVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultTraversalVisitor.java
index 8a57ff1d024..cb6d62a644d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultTraversalVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultTraversalVisitor.java
@@ -43,6 +43,7 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.InPredicate;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.IsNotNullPredicate;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.IsNullPredicate;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Join;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinOn;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.LikePredicate;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Limit;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.LogicalExpression;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/StackableAstVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StackableAstVisitor.java
similarity index 90%
rename from 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/StackableAstVisitor.java
rename to 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StackableAstVisitor.java
index 53a5671ee09..503eb4ff547 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/sql/ast/StackableAstVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StackableAstVisitor.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.node_commons.plan.relational.sql.ast;
+package org.apache.iotdb.db.queryengine.plan.relational.sql.ast;
 
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Node;
 
 import java.util.LinkedList;
 import java.util.Optional;
@@ -31,7 +31,7 @@ public class StackableAstVisitor<R, C>
   public R process(Node node, StackableAstVisitorContext<C> context) {
     context.push(node);
     try {
-      return node.accept(this, context);
+      return AstVisitor.super.process(node, context);
     } finally {
       context.pop();
     }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java
index 99d193f79eb..953357f3aed 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java
@@ -77,12 +77,15 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.IsNotNullPredica
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.IsNullPredicate;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Join;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinCriteria;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinOn;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.JoinUsing;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.LikePredicate;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Limit;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Literal;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.LogicalExpression;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.LongLiteral;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.MeasureDefinition;
+import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.NaturalJoin;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Node;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.NodeLocation;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.NotExpression;
@@ -189,14 +192,11 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExtendRegion;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Flush;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Insert;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRows;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinOn;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinUsing;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.KillQuery;
 import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadConfiguration;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadModel;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.MigrateRegion;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NaturalJoin;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Prepare;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Property;
 import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ReconstructRegion;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/SqlParser.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/SqlParser.java
index bf13ae1e871..494bcb092ae 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/SqlParser.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/SqlParser.java
@@ -25,6 +25,7 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Expression;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Node;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.NodeLocation;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Statement;
+import 
org.apache.iotdb.db.node_commons.plan.relational.sql.parser.CaseInsensitiveStream;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.parser.ParsingException;
 import org.apache.iotdb.db.protocol.session.IClientSession;
 import org.apache.iotdb.db.relational.grammar.sql.RelationalSqlBaseListener;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/DataNodeSqlFormatter.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/DataNodeSqlFormatter.java
index 0ac347699f1..11eb8cceb6c 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/DataNodeSqlFormatter.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/DataNodeSqlFormatter.java
@@ -24,6 +24,7 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Node;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.PatternRecognitionRelation;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Relation;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Table;
+import 
org.apache.iotdb.db.node_commons.plan.relational.sql.util.CommonQuerySqlFormatter;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AddColumn;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AlterDB;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AlterPipe;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ReservedIdentifiers.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ReservedIdentifiers.java
deleted file mode 100644
index 4e9108aacbe..00000000000
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ReservedIdentifiers.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.queryengine.plan.relational.sql.util;
-
-import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Identifier;
-import 
org.apache.iotdb.db.node_commons.plan.relational.sql.parser.ParsingException;
-import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser;
-
-import java.time.ZoneId;
-import java.util.Set;
-
-import static com.google.common.collect.ImmutableSet.toImmutableSet;
-import static 
org.apache.iotdb.db.relational.grammar.sql.RelationalSqlKeywords.sqlKeywords;
-
-public final class ReservedIdentifiers {
-  private static final SqlParser PARSER = new SqlParser();
-
-  public static Set<String> reservedIdentifiers() {
-    return sqlKeywords().stream()
-        .filter(ReservedIdentifiers::reserved)
-        .sorted()
-        .collect(toImmutableSet());
-  }
-
-  public static boolean reserved(final String name) {
-    try {
-      return !(PARSER.createExpression(name, ZoneId.systemDefault()) 
instanceof Identifier);
-    } catch (final ParsingException ignored) {
-      return true;
-    }
-  }
-}


Reply via email to