This is an automated email from the ASF dual-hosted git repository.
zyk 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 ed42e91e047 Fix SchemaTree.hasView check during query analysis (#10040)
ed42e91e047 is described below
commit ed42e91e047b2e93060da3cdbbe4ae495f214b7e
Author: Marcos_Zyk <[email protected]>
AuthorDate: Sat Jun 3 21:42:27 2023 +0800
Fix SchemaTree.hasView check during query analysis (#10040)
---
.../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());
+ }
}