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

zyk pushed a commit to branch rel/1.2
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/1.2 by this push:
     new 77e2e7675ba [To rel/1.2] Fix SchemaTree.hasView check during query 
analysis (#10039)
77e2e7675ba is described below

commit 77e2e7675ba91ebe40fd2f064da5e18cfebc6a6a
Author: Marcos_Zyk <[email protected]>
AuthorDate: Sat Jun 3 21:42:42 2023 +0800

    [To rel/1.2] Fix SchemaTree.hasView check during query analysis (#10039)
---
 .../db/mpp/common/schematree/ClusterSchemaTree.java |  4 +++-
 .../common/schematree/ClusterSchemaTreeTest.java    | 21 +++++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java
index 2c0f40db89f..6a5532f71f4 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java
@@ -267,7 +267,9 @@ public class ClusterSchemaTree implements ISchemaTree {
           }
           measurementNode.setTagMap(tagMap);
           child = measurementNode;
-          this.hasLogicalMeasurementPath = true;
+          if (schema.isLogicalView()) {
+            this.hasLogicalMeasurementPath = true;
+          }
         } else if (i == nodes.length - 2) {
           SchemaEntityNode entityNode = new SchemaEntityNode(nodes[i]);
           entityNode.setAligned(isAligned);
diff --git 
a/server/src/test/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTreeTest.java
 
b/server/src/test/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTreeTest.java
index 161857733a5..6583c5358fe 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTreeTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTreeTest.java
@@ -21,6 +21,8 @@ package org.apache.iotdb.db.mpp.common.schematree;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.MeasurementPath;
 import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.commons.schema.view.LogicalViewSchema;
+import 
org.apache.iotdb.commons.schema.view.viewExpression.leaf.TimeSeriesViewOperand;
 import org.apache.iotdb.db.mpp.common.schematree.node.SchemaEntityNode;
 import org.apache.iotdb.db.mpp.common.schematree.node.SchemaInternalNode;
 import org.apache.iotdb.db.mpp.common.schematree.node.SchemaMeasurementNode;
@@ -728,4 +730,23 @@ public class ClusterSchemaTreeTest {
     return SchemaTreeVisitorFactory.createSchemaTreeMeasurementVisitor(
         root, pathPattern, isPrefixMatch, slimit, soffset);
   }
+
+  @Test
+  public void testHasView() throws IllegalPathException {
+    ClusterSchemaTree schemaTree = new ClusterSchemaTree();
+    schemaTree.appendSingleMeasurement(
+        new PartialPath("root.db.db.s1"),
+        new MeasurementSchema("s1", TSDataType.INT32),
+        null,
+        null,
+        false);
+    Assert.assertFalse(schemaTree.hasLogicalViewMeasurement());
+    schemaTree.appendSingleMeasurement(
+        new PartialPath("root.db.view.s1"),
+        new LogicalViewSchema("s1", new TimeSeriesViewOperand("root.db.d.s1")),
+        null,
+        null,
+        false);
+    Assert.assertTrue(schemaTree.hasLogicalViewMeasurement());
+  }
 }

Reply via email to