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

jackietien pushed a commit to branch ty/FixView
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 045aeb95d3bb388acf0496c41dfee74af6745acd
Author: JackieTien97 <[email protected]>
AuthorDate: Fri Aug 9 18:42:03 2024 +0800

    fix some
---
 .../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 +++-
 4 files changed, 14 insertions(+), 6 deletions(-)

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 {

Reply via email to