This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch ty/ChangeTsFileVersion
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/ty/ChangeTsFileVersion by this
push:
new 0cc8179d48f Fix IoTDBAlignByDeviceWithTemplateAggregationIT bug in 1C1D
0cc8179d48f is described below
commit 0cc8179d48f6f39255555781188c9d889d92dd19
Author: JackieTien97 <[email protected]>
AuthorDate: Wed Aug 7 11:06:14 2024 +0800
Fix IoTDBAlignByDeviceWithTemplateAggregationIT bug in 1C1D
---
.../java/org/apache/iotdb/confignode/manager/ConfigManager.java | 2 +-
.../iotdb/db/queryengine/plan/analyze/ExpressionTypeAnalyzer.java | 2 +-
.../db/queryengine/plan/expression/leaf/TimeSeriesOperand.java | 8 +++++++-
.../iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java | 2 +-
.../db/queryengine/plan/statement/component/HavingCondition.java | 8 +-------
5 files changed, 11 insertions(+), 11 deletions(-)
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
index 086e61cee6a..f56f4f6f631 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
@@ -696,7 +696,7 @@ public class ConfigManager implements IManager {
Arrays.copyOf(innerPathList.get(0).getNodes(),
innerPathList.get(0).getNodeLength() - 1);
// root.sg1.*.d1
for (String node : devicePath) {
- if (node.equals(IoTDBConstant.ONE_LEVEL_PATH_WILDCARD)) {
+ if (node.contains(IoTDBConstant.ONE_LEVEL_PATH_WILDCARD)) {
return Collections.emptyList();
}
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionTypeAnalyzer.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionTypeAnalyzer.java
index a470e11ee61..41f793d3362 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionTypeAnalyzer.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionTypeAnalyzer.java
@@ -406,7 +406,7 @@ public class ExpressionTypeAnalyzer {
}
}
- return setExpressionType(timeSeriesOperand, timeSeriesOperand.getType());
+ return setExpressionType(timeSeriesOperand,
timeSeriesOperand.getOperandType());
}
@Override
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java
index 96e7b9db097..7aa8a289762 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java
@@ -68,10 +68,16 @@ public class TimeSeriesOperand extends LeafOperand {
return path;
}
- public TSDataType getType() {
+ // get TSDataType of this TimeSeriesOperand returning, it will never return
null
+ public TSDataType getOperandType() {
return type != null ? type : path.getSeriesType();
}
+ // get the type field of this TimeSeriesOperand, it may return null
+ public TSDataType getType() {
+ return type;
+ }
+
@Override
public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) {
return visitor.visitTimeSeriesOperand(this, context);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
index 7064441962f..04b741e4baf 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
@@ -466,7 +466,7 @@ public class LogicalPlanBuilder {
String.format("%s(%s)", partialAggregationName,
path.getFullPath()),
SchemaUtils.getSeriesTypeByPath(
((TimeSeriesOperand)
aggregationDescriptor.getOutputExpressions().get(0))
- .getType(),
+ .getOperandType(),
partialAggregationName));
}
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/HavingCondition.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/HavingCondition.java
index 655b4cdd6a8..34d7d272c63 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/HavingCondition.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/HavingCondition.java
@@ -26,9 +26,7 @@ import
org.apache.iotdb.db.queryengine.plan.statement.StatementNode;
/** This class maintains information of {@code HAVING} clause. */
public class HavingCondition extends StatementNode {
- private Expression predicate;
-
- public HavingCondition() {}
+ private final Expression predicate;
public HavingCondition(Expression predicate) {
// cast functionName to lowercase in havingExpression
@@ -39,10 +37,6 @@ public class HavingCondition extends StatementNode {
return predicate;
}
- public void setPredicate(Expression predicate) {
- this.predicate = ExpressionAnalyzer.toLowerCaseExpression(predicate);
- }
-
public String toSQLString() {
return "HAVING " + predicate.getExpressionString();
}