This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new d78585c8b28 Fix some view related IT
d78585c8b28 is described below
commit d78585c8b284297b592a6c2daba51bf30324c369
Author: Jackie Tien <[email protected]>
AuthorDate: Sat Aug 10 17:15:51 2024 +0800
Fix some view related IT
---
.../apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java | 2 +-
.../plan/expression/visitor/GetMeasurementExpressionVisitor.java | 5 ++---
.../iotdb/db/queryengine/plan/planner/LocalExecutionPlanner.java | 7 ++++++-
.../plan/node/metadata/write/view/CreateLogicalViewNode.java | 4 +++-
.../schemaregion/mtree/impl/pbtree/MTreeBelowSGCachedImpl.java | 4 +++-
5 files changed, 15 insertions(+), 7 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
index 882408368c2..2925c1992bb 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
@@ -2239,7 +2239,7 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
if (sourceExpression instanceof TimeSeriesOperand) {
if (viewPath != null) {
try {
- sourcePath = new PartialPath(viewPath);
+ sourcePath = new MeasurementPath(viewPath);
} catch (IllegalPathException e) {
throw new SemanticException(
String.format(
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/GetMeasurementExpressionVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/GetMeasurementExpressionVisitor.java
index 0395c3bc047..4eefc378cfa 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/GetMeasurementExpressionVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/GetMeasurementExpressionVisitor.java
@@ -33,9 +33,8 @@ public class GetMeasurementExpressionVisitor extends
ReconstructVisitor<Analysis
if (expression.getViewPath() != null) {
PartialPath viewPath = expression.getViewPath();
return new TimeSeriesOperand(
- new MeasurementPath(
- new PartialPath(viewPath.getMeasurement(), false),
- ExpressionTypeAnalyzer.analyzeExpression(analysis, expression)));
+ new PartialPath(viewPath.getMeasurement(), false),
+ ExpressionTypeAnalyzer.analyzeExpression(analysis, expression));
}
return expression.accept(this, analysis);
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanner.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanner.java
index 91e09c57e01..79d89b86d9b 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanner.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanner.java
@@ -47,6 +47,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import static
org.apache.iotdb.db.protocol.session.IClientSession.SqlDialect.TREE;
+
/**
* Used to plan a fragment instance. One fragment instance could be split into
multiple pipelines so
* that a fragment instance could be run in parallel, and thus we can take
full advantages of
@@ -149,7 +151,10 @@ public class LocalExecutionPlanner {
// Generate pipelines, return the last pipeline data structure
// TODO Replace operator with operatorFactory to build multiple driver for
one pipeline
Operator root;
- IClientSession.SqlDialect sqlDialect =
instanceContext.getSessionInfo().getSqlDialect();
+ IClientSession.SqlDialect sqlDialect =
+ instanceContext.getSessionInfo() == null
+ ? TREE
+ : instanceContext.getSessionInfo().getSqlDialect();
switch (sqlDialect) {
case TREE:
root = node.accept(new OperatorTreeGenerator(), context);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/CreateLogicalViewNode.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/CreateLogicalViewNode.java
index f43ca9114ab..ffdd63b29a4 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/CreateLogicalViewNode.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/CreateLogicalViewNode.java
@@ -20,6 +20,7 @@
package
org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.view;
import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
+import org.apache.iotdb.commons.path.MeasurementPath;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.path.PathDeserializeUtil;
import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression;
@@ -229,7 +230,8 @@ public class CreateLogicalViewNode extends WritePlanNode
implements ICreateLogic
TRegionReplicaSet regionReplicaSet =
analysis
.getSchemaPartitionInfo()
- .getSchemaRegionReplicaSet(entry.getKey().getIDeviceID());
+ .getSchemaRegionReplicaSet(
+ new
MeasurementPath(entry.getKey().getNodes()).getIDeviceID());
// create a map if the key(regionReplicaSet) is not exists,
// then put this entry into this map(from regionReplicaSet to this entry)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/MTreeBelowSGCachedImpl.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/MTreeBelowSGCachedImpl.java
index c29e94b4d74..3ee035a6710 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/MTreeBelowSGCachedImpl.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/MTreeBelowSGCachedImpl.java
@@ -80,6 +80,7 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -1024,7 +1025,8 @@ public class MTreeBelowSGCachedImpl {
throw new IllegalPathException(path.getFullPath());
}
MetaFormatUtils.checkTimeseries(path);
- PartialPath devicePath = path.getDevicePath();
+ PartialPath devicePath =
+ new PartialPath(Arrays.copyOf(path.getNodes(), path.getNodeLength() -
1));
ICachedMNode deviceParent = checkAndAutoCreateInternalPath(devicePath);
try {