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)); } }
