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