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

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

commit 17c34d37000ec228fda0410507c76767af9e08b1
Author: Alima777 <[email protected]>
AuthorDate: Thu May 20 11:12:59 2021 +0800

    Reimplement logical checker
---
 .../qp/logical/crud/AggregationQueryOperator.java  | 36 +++++++++-
 .../db/qp/logical/crud/FillQueryOperator.java      | 19 ++++-
 .../db/qp/logical/crud/GroupByQueryOperator.java   |  2 +-
 .../db/qp/logical/crud/LastQueryOperator.java      | 17 +++++
 .../iotdb/db/qp/logical/crud/QueryOperator.java    | 22 +++++-
 .../iotdb/db/qp/logical/crud/UDFQueryOperator.java | 12 +++-
 .../iotdb/db/qp/physical/crud/AggregationPlan.java |  8 ---
 .../iotdb/db/qp/physical/crud/FillQueryPlan.java   |  9 ---
 .../iotdb/db/qp/physical/crud/GroupByTimePlan.java |  2 -
 .../iotdb/db/qp/physical/crud/QueryPlan.java       |  3 +-
 .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java    | 30 ++++----
 .../iotdb/db/qp/strategy/LogicalChecker.java       | 81 ++--------------------
 .../iotdb/db/integration/IOTDBGroupByIT.java       |  4 +-
 .../iotdb/db/integration/IoTDBDisableAlignIT.java  | 19 ++---
 .../iotdb/db/integration/IoTDBGroupByFillIT.java   |  4 +-
 .../aggregation/IoTDBAggregationByLevelIT.java     |  4 +-
 16 files changed, 138 insertions(+), 134 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/AggregationQueryOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/AggregationQueryOperator.java
index fd790ff..66eecef 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/AggregationQueryOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/AggregationQueryOperator.java
@@ -18,4 +18,38 @@
  */
 package org.apache.iotdb.db.qp.logical.crud;
 
-public class AggregationQueryOperator extends QueryOperator {}
+import org.apache.iotdb.db.exception.query.LogicalOperatorException;
+import org.apache.iotdb.db.query.expression.Expression;
+import org.apache.iotdb.db.query.expression.ResultColumn;
+import org.apache.iotdb.db.query.expression.unary.TimeSeriesOperand;
+
+public class AggregationQueryOperator extends QueryOperator {
+
+  public static final String ERROR_MESSAGE1 =
+      "Common queries and aggregated queries are not allowed to appear at the 
same time";
+
+  public AggregationQueryOperator() {}
+
+  public AggregationQueryOperator(QueryOperator queryOperator) {
+    this.selectComponent = queryOperator.getSelectComponent();
+    this.fromComponent = queryOperator.getFromComponent();
+    this.filterOperator = queryOperator.getFilterOperator();
+    this.specialClauseComponent = queryOperator.getSpecialClauseComponent();
+  }
+
+  @Override
+  public void check() throws LogicalOperatorException {
+    super.check();
+
+    if (!isAlignByTime()) {
+      throw new LogicalOperatorException("AGGREGATION doesn't support disable 
align clause.");
+    }
+
+    for (ResultColumn resultColumn : selectComponent.getResultColumns()) {
+      Expression expression = resultColumn.getExpression();
+      if (expression instanceof TimeSeriesOperand) {
+        throw new LogicalOperatorException(ERROR_MESSAGE1);
+      }
+    }
+  }
+}
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/FillQueryOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/FillQueryOperator.java
index 985ae16..b18de97 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/FillQueryOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/FillQueryOperator.java
@@ -18,4 +18,21 @@
  */
 package org.apache.iotdb.db.qp.logical.crud;
 
-public class FillQueryOperator extends QueryOperator {}
+import org.apache.iotdb.db.exception.query.LogicalOperatorException;
+import org.apache.iotdb.db.qp.constant.SQLConstant;
+
+public class FillQueryOperator extends QueryOperator {
+
+  @Override
+  public void check() throws LogicalOperatorException {
+    super.check();
+
+    if (!isAlignByTime()) {
+      throw new LogicalOperatorException("FILL doesn't support disable align 
clause.");
+    }
+
+    if (!filterOperator.isLeaf() || filterOperator.getTokenIntType() != 
SQLConstant.EQUAL) {
+      throw new LogicalOperatorException("Only \"=\" can be used in fill 
function");
+    }
+  }
+}
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/GroupByQueryOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/GroupByQueryOperator.java
index ec9a938..10835bb 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/GroupByQueryOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/GroupByQueryOperator.java
@@ -18,4 +18,4 @@
  */
 package org.apache.iotdb.db.qp.logical.crud;
 
-public class GroupByQueryOperator extends QueryOperator {}
+public class GroupByQueryOperator extends AggregationQueryOperator {}
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/LastQueryOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/LastQueryOperator.java
index 51b43c6..72b73d4 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/LastQueryOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/LastQueryOperator.java
@@ -18,6 +18,11 @@
  */
 package org.apache.iotdb.db.qp.logical.crud;
 
+import org.apache.iotdb.db.exception.query.LogicalOperatorException;
+import org.apache.iotdb.db.query.expression.Expression;
+import org.apache.iotdb.db.query.expression.ResultColumn;
+import org.apache.iotdb.db.query.expression.unary.TimeSeriesOperand;
+
 public class LastQueryOperator extends QueryOperator {
 
   public LastQueryOperator() {}
@@ -28,4 +33,16 @@ public class LastQueryOperator extends QueryOperator {
     this.filterOperator = queryOperator.getFilterOperator();
     this.specialClauseComponent = queryOperator.getSpecialClauseComponent();
   }
+
+  @Override
+  public void check() throws LogicalOperatorException {
+    super.check();
+
+    for (ResultColumn resultColumn : selectComponent.getResultColumns()) {
+      Expression expression = resultColumn.getExpression();
+      if (!(expression instanceof TimeSeriesOperand)) {
+        throw new LogicalOperatorException("Last queries can only be applied 
on raw time series.");
+      }
+    }
+  }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
index 2e70cf3..5a5ddfd 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
@@ -18,7 +18,9 @@
  */
 package org.apache.iotdb.db.qp.logical.crud;
 
+import org.apache.iotdb.db.exception.query.LogicalOperatorException;
 import org.apache.iotdb.db.index.common.IndexType;
+import org.apache.iotdb.db.metadata.PartialPath;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.logical.RootOperator;
@@ -33,7 +35,6 @@ public class QueryOperator extends RootOperator {
   protected SpecialClauseComponent specialClauseComponent;
 
   protected Map<String, Object> props;
-
   protected IndexType indexType;
 
   public QueryOperator() {
@@ -108,4 +109,23 @@ public class QueryOperator extends RootOperator {
   public boolean isGroupByLevel() {
     return specialClauseComponent != null && specialClauseComponent.getLevel() 
!= -1;
   }
+
+  public void check() throws LogicalOperatorException {
+    if (isAlignByDevice()) {
+      if (selectComponent.hasTimeSeriesGeneratingFunction()) {
+        throw new LogicalOperatorException(
+            "ALIGN BY DEVICE clause is not supported in UDF queries.");
+      }
+
+      for (PartialPath path : selectComponent.getPaths()) {
+        String device = path.getDevice();
+        if (!device.isEmpty()) {
+          throw new LogicalOperatorException(
+              "The paths of the SELECT clause can only be single level. In 
other words, "
+                  + "the paths of the SELECT clause can only be measurements 
or STAR, without DOT."
+                  + " For more details please refer to the SQL document.");
+        }
+      }
+    }
+  }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/UDFQueryOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/UDFQueryOperator.java
index 49a6814..ab3af83 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/UDFQueryOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/UDFQueryOperator.java
@@ -18,4 +18,14 @@
  */
 package org.apache.iotdb.db.qp.logical.crud;
 
-public class UDFQueryOperator extends QueryOperator {}
+public class UDFQueryOperator extends QueryOperator {
+
+  public UDFQueryOperator() {}
+
+  public UDFQueryOperator(QueryOperator queryOperator) {
+    this.selectComponent = queryOperator.getSelectComponent();
+    this.fromComponent = queryOperator.getFromComponent();
+    this.filterOperator = queryOperator.getFilterOperator();
+    this.specialClauseComponent = queryOperator.getSpecialClauseComponent();
+  }
+}
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java
index ee98f49..bccd004 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java
@@ -104,14 +104,6 @@ public class AggregationPlan extends RawDataQueryPlan {
   }
 
   @Override
-  public void setAlignByTime(boolean align) throws QueryProcessException {
-    if (!align) {
-      throw new QueryProcessException(
-          getOperatorType().name() + " doesn't support disable align clause.");
-    }
-  }
-
-  @Override
   public String getColumnForReaderFromPath(PartialPath path, int pathIndex) {
     return resultColumns.get(pathIndex).getResultColumnName();
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/FillQueryPlan.java 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/FillQueryPlan.java
index c40274a..300cc85 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/FillQueryPlan.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/FillQueryPlan.java
@@ -18,7 +18,6 @@
  */
 package org.apache.iotdb.db.qp.physical.crud;
 
-import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.query.executor.fill.IFill;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
@@ -52,14 +51,6 @@ public class FillQueryPlan extends RawDataQueryPlan {
   }
 
   @Override
-  public void setAlignByTime(boolean align) throws QueryProcessException {
-    if (!align) {
-      throw new QueryProcessException(
-          getOperatorType().name() + " doesn't support disable align clause.");
-    }
-  }
-
-  @Override
   public boolean isRawQuery() {
     return false;
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/GroupByTimePlan.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/GroupByTimePlan.java
index c530daf..6c906bf 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/GroupByTimePlan.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/GroupByTimePlan.java
@@ -22,8 +22,6 @@ import org.apache.iotdb.db.qp.logical.Operator;
 
 public class GroupByTimePlan extends AggregationPlan {
 
-  public static final String LACK_FUNC_ERROR_MESSAGE =
-      "Lack aggregation function in group by query";
   // [startTime, endTime)
   private long startTime;
   private long endTime;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
index c28d9c6..b9456cc 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
@@ -20,7 +20,6 @@ package org.apache.iotdb.db.qp.physical.crud;
 
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
-import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.PartialPath;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
@@ -109,7 +108,7 @@ public abstract class QueryPlan extends PhysicalPlan {
     return alignByTime;
   }
 
-  public void setAlignByTime(boolean align) throws QueryProcessException {
+  public void setAlignByTime(boolean align) {
     alignByTime = align;
   }
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java 
b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
index 0212a0f..74ecb18 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
@@ -45,6 +45,7 @@ import org.apache.iotdb.db.qp.logical.crud.LastQueryOperator;
 import org.apache.iotdb.db.qp.logical.crud.QueryOperator;
 import org.apache.iotdb.db.qp.logical.crud.SelectComponent;
 import org.apache.iotdb.db.qp.logical.crud.SpecialClauseComponent;
+import org.apache.iotdb.db.qp.logical.crud.UDFQueryOperator;
 import org.apache.iotdb.db.qp.logical.sys.AlterTimeSeriesOperator;
 import org.apache.iotdb.db.qp.logical.sys.AlterTimeSeriesOperator.AlterType;
 import org.apache.iotdb.db.qp.logical.sys.AuthorOperator;
@@ -1029,13 +1030,29 @@ public class IoTDBSqlVisitor extends 
SqlBaseBaseVisitor<Operator> {
       queryOp = new LastQueryOperator(queryOp);
     }
 
+    boolean isFirstElement = true;
     for (ResultColumnContext resultColumnContext : ctx.resultColumn()) {
       selectComponent.addResultColumn(parseResultColumn(resultColumnContext));
+      // judge query type according to the first select element
+      if (!hasDecidedQueryType() && isFirstElement) {
+        if (selectComponent.hasAggregationFunction()) {
+          queryOp = new AggregationQueryOperator(queryOp);
+        } else if (selectComponent.hasTimeSeriesGeneratingFunction()) {
+          queryOp = new UDFQueryOperator(queryOp);
+        }
+        isFirstElement = false;
+      }
     }
 
     queryOp.setSelectComponent(selectComponent);
   }
 
+  private boolean hasDecidedQueryType() {
+    return queryOp instanceof GroupByQueryOperator
+        || queryOp instanceof FillQueryOperator
+        || queryOp instanceof LastQueryOperator;
+  }
+
   @Override
   public Operator visitTopClause(TopClauseContext ctx) {
     Map<String, Object> props = new HashMap<>();
@@ -1333,19 +1350,12 @@ public class IoTDBSqlVisitor extends 
SqlBaseBaseVisitor<Operator> {
   }
 
   public void parseGroupByLevelClause(GroupByLevelClauseContext ctx) {
-    /*    if (!queryOp.hasAggregationFunction()) {
-      throw new SQLParserException(GroupByTimePlan.LACK_FUNC_ERROR_MESSAGE);
-    }*/
     GroupByLevelClauseComponent groupByLevelClauseComponent = new 
GroupByLevelClauseComponent();
     
groupByLevelClauseComponent.setLevel(Integer.parseInt(ctx.INT().getText()));
     queryOp.setSpecialClauseComponent(groupByLevelClauseComponent);
   }
 
   public void parseFillClause(FillClauseContext ctx) {
-    /*    FilterOperator filterOperator = queryOp.getFilterOperator();
-    if (!filterOperator.isLeaf() || filterOperator.getTokenIntType() != 
SQLConstant.EQUAL) {
-      throw new SQLParserException("Only \"=\" can be used in fill function");
-    }*/
     FillClauseComponent fillClauseComponent = new FillClauseComponent();
     List<TypeClauseContext> list = ctx.typeClause();
     Map<TSDataType, IFill> fillTypes = new EnumMap<>(TSDataType.class);
@@ -1449,9 +1459,6 @@ public class IoTDBSqlVisitor extends 
SqlBaseBaseVisitor<Operator> {
   }
 
   private void parseGroupByTimeClause(GroupByTimeClauseContext ctx) {
-    /*    if (!queryOp.hasAggregationFunction()) {
-      throw new SQLParserException(GroupByTimePlan.LACK_FUNC_ERROR_MESSAGE);
-    }*/
     GroupByClauseComponent groupByClauseComponent = new 
GroupByClauseComponent();
     groupByClauseComponent.setLeftCRightO(ctx.timeInterval().LS_BRACKET() != 
null);
     // parse timeUnit
@@ -1479,9 +1486,6 @@ public class IoTDBSqlVisitor extends 
SqlBaseBaseVisitor<Operator> {
   }
 
   private void parseGroupByFillClause(GroupByFillClauseContext ctx) {
-    /*    if (!queryOp.hasAggregationFunction()) {
-      throw new SQLParserException(GroupByTimePlan.LACK_FUNC_ERROR_MESSAGE);
-    }*/
     GroupByFillClauseComponent groupByFillClauseComponent = new 
GroupByFillClauseComponent();
     groupByFillClauseComponent.setLeftCRightO(ctx.timeInterval().LS_BRACKET() 
!= null);
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalChecker.java 
b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalChecker.java
index b5b0d2a..9354bd2 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalChecker.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalChecker.java
@@ -20,90 +20,17 @@
 package org.apache.iotdb.db.qp.strategy;
 
 import org.apache.iotdb.db.exception.query.LogicalOperatorException;
-import org.apache.iotdb.db.metadata.PartialPath;
 import org.apache.iotdb.db.qp.logical.Operator;
-import org.apache.iotdb.db.qp.logical.crud.LastQueryOperator;
 import org.apache.iotdb.db.qp.logical.crud.QueryOperator;
-import org.apache.iotdb.db.qp.logical.crud.SelectComponent;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.unary.TimeSeriesOperand;
 
 public class LogicalChecker {
 
-  /**
-   * TODO: make check() an abstract method and call check() in this method or 
outside the
-   * LogicalChecker.
-   */
+  private LogicalChecker() {}
+
+  /** To check whether illegal component exists in specific operator */
   public static void check(Operator operator) throws LogicalOperatorException {
     if (operator instanceof QueryOperator) {
-      checkQueryOperator((QueryOperator) operator);
+      ((QueryOperator) operator).check();
     }
   }
-
-  private static void checkQueryOperator(QueryOperator queryOperator)
-      throws LogicalOperatorException {
-    checkSelectOperator(queryOperator);
-  }
-
-  private static void checkSelectOperator(QueryOperator queryOperator)
-      throws LogicalOperatorException {
-    checkLast(queryOperator);
-    checkAggregation(queryOperator);
-    checkAlignByDevice(queryOperator);
-  }
-
-  private static void checkLast(QueryOperator queryOperator) throws 
LogicalOperatorException {
-    SelectComponent selectComponent = queryOperator.getSelectComponent();
-    if (!(queryOperator instanceof LastQueryOperator)) {
-      return;
-    }
-
-    for (ResultColumn resultColumn : selectComponent.getResultColumns()) {
-      Expression expression = resultColumn.getExpression();
-      if (!(expression instanceof TimeSeriesOperand)) {
-        throw new LogicalOperatorException("Last queries can only be applied 
on raw time series.");
-      }
-    }
-  }
-
-  private static void checkAggregation(QueryOperator queryOperator)
-      throws LogicalOperatorException {
-    SelectComponent selectComponent = queryOperator.getSelectComponent();
-    if (!selectComponent.hasAggregationFunction()) {
-      return;
-    }
-
-    for (ResultColumn resultColumn : selectComponent.getResultColumns()) {
-      Expression expression = resultColumn.getExpression();
-      if (expression instanceof TimeSeriesOperand) {
-        throw new LogicalOperatorException(
-            "Common queries and aggregated queries are not allowed to appear 
at the same time");
-      }
-    }
-  }
-
-  private static void checkAlignByDevice(QueryOperator queryOperator)
-      throws LogicalOperatorException {
-    if (!queryOperator.isAlignByDevice()) {
-      return;
-    }
-
-    SelectComponent selectComponent = queryOperator.getSelectComponent();
-    if (selectComponent.hasTimeSeriesGeneratingFunction()) {
-      throw new LogicalOperatorException("ALIGN BY DEVICE clause is not 
supported in UDF queries.");
-    }
-
-    for (PartialPath path : selectComponent.getPaths()) {
-      String device = path.getDevice();
-      if (!device.isEmpty()) {
-        throw new LogicalOperatorException(
-            "The paths of the SELECT clause can only be single level. In other 
words, "
-                + "the paths of the SELECT clause can only be measurements or 
STAR, without DOT."
-                + " For more details please refer to the SQL document.");
-      }
-    }
-  }
-
-  private LogicalChecker() {}
 }
diff --git 
a/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java 
b/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java
index 624977f..3e99996 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.db.integration;
 
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.CompactionStrategy;
-import org.apache.iotdb.db.qp.physical.crud.GroupByTimePlan;
+import org.apache.iotdb.db.qp.logical.crud.AggregationQueryOperator;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.jdbc.Config;
 
@@ -946,7 +946,7 @@ public class IOTDBGroupByIT {
 
       fail("No expected exception thrown");
     } catch (Exception e) {
-      
Assert.assertTrue(e.getMessage().contains(GroupByTimePlan.LACK_FUNC_ERROR_MESSAGE));
+      
Assert.assertTrue(e.getMessage().contains(AggregationQueryOperator.ERROR_MESSAGE1));
     }
   }
 
diff --git 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBDisableAlignIT.java 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBDisableAlignIT.java
index f96648d..6883be7 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBDisableAlignIT.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBDisableAlignIT.java
@@ -351,12 +351,11 @@ public class IoTDBDisableAlignIT {
             DriverManager.getConnection(
                 Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
         Statement statement = connection.createStatement()) {
-      boolean hasResultSet =
-          statement.execute(
-              "select * from root.vehicle where time = 3 Fill(int32[previous, 
5ms]) disable align");
+      statement.execute(
+          "select * from root.vehicle where time = 3 Fill(int32[previous, 
5ms]) disable align");
       fail("No exception thrown.");
     } catch (Exception e) {
-      Assert.assertTrue(e.getMessage().contains("FILL doesn't support disable 
align clause."));
+      Assert.assertTrue(e.getMessage().contains("doesn't support disable align 
clause."));
     }
   }
 
@@ -367,13 +366,10 @@ public class IoTDBDisableAlignIT {
             DriverManager.getConnection(
                 Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
         Statement statement = connection.createStatement()) {
-      boolean hasResultSet =
-          statement.execute(
-              "select count(*) from root.vehicle GROUP BY ([2,50),20ms) 
disable align");
+      statement.execute("select count(*) from root.vehicle GROUP BY 
([2,50),20ms) disable align");
       fail("No exception thrown.");
     } catch (Exception e) {
-      Assert.assertTrue(
-          e.getMessage().contains("GROUPBYTIME doesn't support disable align 
clause."));
+      Assert.assertTrue(e.getMessage().contains("doesn't support disable align 
clause."));
     }
   }
 
@@ -384,11 +380,10 @@ public class IoTDBDisableAlignIT {
             DriverManager.getConnection(
                 Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
         Statement statement = connection.createStatement()) {
-      boolean hasResultSet = statement.execute("select count(*) from root 
disable align");
+      statement.execute("select count(*) from root disable align");
       fail("No exception thrown.");
     } catch (Exception e) {
-      Assert.assertTrue(
-          e.getMessage().contains("AGGREGATION doesn't support disable align 
clause."));
+      Assert.assertTrue(e.getMessage().contains("doesn't support disable align 
clause."));
     }
   }
 
diff --git 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBGroupByFillIT.java 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBGroupByFillIT.java
index 0db57f3..aaae8eb 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBGroupByFillIT.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBGroupByFillIT.java
@@ -19,7 +19,7 @@
 package org.apache.iotdb.db.integration;
 
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.qp.physical.crud.GroupByTimePlan;
+import org.apache.iotdb.db.qp.logical.crud.AggregationQueryOperator;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.jdbc.Config;
 import org.apache.iotdb.jdbc.IoTDBSQLException;
@@ -804,7 +804,7 @@ public class IoTDBGroupByFillIT {
 
       fail("No expected exception thrown");
     } catch (Exception e) {
-      
Assert.assertTrue(e.getMessage().contains(GroupByTimePlan.LACK_FUNC_ERROR_MESSAGE));
+      
Assert.assertTrue(e.getMessage().contains(AggregationQueryOperator.ERROR_MESSAGE1));
     }
   }
 
diff --git 
a/server/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationByLevelIT.java
 
b/server/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationByLevelIT.java
index 0da4e16..dbedae7 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationByLevelIT.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationByLevelIT.java
@@ -20,7 +20,7 @@ package org.apache.iotdb.db.integration.aggregation;
 
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.qp.Planner;
-import org.apache.iotdb.db.qp.physical.crud.GroupByTimePlan;
+import org.apache.iotdb.db.qp.logical.crud.AggregationQueryOperator;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.jdbc.Config;
 
@@ -339,7 +339,7 @@ public class IoTDBAggregationByLevelIT {
 
       fail("No expected exception thrown");
     } catch (Exception e) {
-      
Assert.assertTrue(e.getMessage().contains(GroupByTimePlan.LACK_FUNC_ERROR_MESSAGE));
+      
Assert.assertTrue(e.getMessage().contains(AggregationQueryOperator.ERROR_MESSAGE1));
     }
   }
 

Reply via email to