This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch TreeToTableView
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/TreeToTableView by this push:
new 2d6860495bc Add plan print logic for new added PlanNodes
2d6860495bc is described below
commit 2d6860495bc00e1834b7a189023a7f19041bd5a9
Author: Weihao Li <[email protected]>
AuthorDate: Tue Dec 31 19:35:50 2024 +0800
Add plan print logic for new added PlanNodes
---
.../plan/planner/plan/node/PlanGraphPrinter.java | 24 ++++++++++++++++++++--
.../node/InformationSchemaTableScanNode.java | 4 ++++
.../node/TreeNonAlignedDeviceViewScanNode.java | 6 ++++--
.../plan/relational/analyzer/TestMatadata.java | 6 +++---
.../plan/relational/analyzer/TreeViewTest.java | 8 ++++++++
5 files changed, 41 insertions(+), 7 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
index 48a339dcb0d..1811d7f46ae 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
@@ -65,6 +65,7 @@ import
org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDe
import
org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.CrossSeriesAggregationDescriptor;
import
org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.DeviceViewIntoPathDescriptor;
import
org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.IntoPathDescriptor;
+import
org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode;
import
org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
import
org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
import
org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
@@ -72,6 +73,7 @@ import
org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
import
org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode;
import
org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode;
import
org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode;
+import
org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode;
import
org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode;
import org.apache.commons.lang3.Validate;
@@ -628,7 +630,7 @@ public class PlanGraphPrinter extends
PlanVisitor<List<String>, PlanGraphPrinter
}
List<String> boxValue = new ArrayList<>();
- boxValue.add(String.format("TableScan-%s", node.getPlanNodeId().getId()));
+ boxValue.add(node.toString());
boxValue.add(String.format("QualifiedTableName: %s",
node.getQualifiedObjectName().toString()));
boxValue.add(String.format("OutputSymbols: %s", node.getOutputSymbols()));
@@ -660,6 +662,14 @@ public class PlanGraphPrinter extends
PlanVisitor<List<String>, PlanGraphPrinter
node.getRegionReplicaSet() == null ||
node.getRegionReplicaSet().getRegionId() == null
? REGION_NOT_ASSIGNED
: node.getRegionReplicaSet().getRegionId().getId()));
+
+ if (deviceTableScanNode instanceof TreeDeviceViewScanNode) {
+ TreeDeviceViewScanNode treeDeviceViewScanNode = (TreeDeviceViewScanNode)
deviceTableScanNode;
+ boxValue.add(String.format("TreeDB: %s",
treeDeviceViewScanNode.getTreeDBName()));
+ boxValue.add(
+ String.format(
+ "MeasurementToColumnName: %s",
treeDeviceViewScanNode.getMeasurementColumnNameMap()));
+ }
return render(node, boxValue, context);
}
@@ -690,7 +700,7 @@ public class PlanGraphPrinter extends
PlanVisitor<List<String>, PlanGraphPrinter
org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode
node,
GraphContext context) {
List<String> boxValue = new ArrayList<>();
- boxValue.add(String.format("AggregationTableScan-%s",
node.getPlanNodeId().getId()));
+ boxValue.add(node.toString());
boxValue.add(String.format("QualifiedTableName: %s",
node.getQualifiedObjectName().toString()));
boxValue.add(String.format("OutputSymbols: %s", node.getOutputSymbols()));
int i = 0;
@@ -725,6 +735,16 @@ public class PlanGraphPrinter extends
PlanVisitor<List<String>, PlanGraphPrinter
node.getRegionReplicaSet() == null ||
node.getRegionReplicaSet().getRegionId() == null
? REGION_NOT_ASSIGNED
: node.getRegionReplicaSet().getRegionId().getId()));
+
+ if (node instanceof AggregationTreeDeviceViewScanNode) {
+ AggregationTreeDeviceViewScanNode aggregationTreeDeviceViewScanNode =
+ (AggregationTreeDeviceViewScanNode) node;
+ boxValue.add(String.format("TreeDB: %s",
aggregationTreeDeviceViewScanNode.getTreeDBName()));
+ boxValue.add(
+ String.format(
+ "MeasurementToColumnName: %s",
+
aggregationTreeDeviceViewScanNode.getMeasurementColumnNameMap()));
+ }
return render(node, boxValue, context);
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/InformationSchemaTableScanNode.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/InformationSchemaTableScanNode.java
index d457029078e..08a11adbbdb 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/InformationSchemaTableScanNode.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/InformationSchemaTableScanNode.java
@@ -122,4 +122,8 @@ public class InformationSchemaTableScanNode extends
TableScanNode {
node.setPlanNodeId(PlanNodeId.deserialize(byteBuffer));
return node;
}
+
+ public String toString() {
+ return "InformationSchemaTableScanNode-" + this.getPlanNodeId();
+ }
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeNonAlignedDeviceViewScanNode.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeNonAlignedDeviceViewScanNode.java
index fa9f15670e9..f2202feda47 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeNonAlignedDeviceViewScanNode.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeNonAlignedDeviceViewScanNode.java
@@ -71,6 +71,8 @@ public class TreeNonAlignedDeviceViewScanNode extends
TreeDeviceViewScanNode {
measurementColumnNameMap);
}
+ public TreeNonAlignedDeviceViewScanNode() {}
+
@Override
public <R, C> R accept(PlanVisitor<R, C> visitor, C context) {
return visitor.visitTreeNonAlignedDeviceViewScan(this, context);
@@ -110,8 +112,8 @@ public class TreeNonAlignedDeviceViewScanNode extends
TreeDeviceViewScanNode {
TreeDeviceViewScanNode.serializeMemberVariables(this, stream);
}
- public static TreeAlignedDeviceViewScanNode deserialize(ByteBuffer
byteBuffer) {
- TreeAlignedDeviceViewScanNode node = new TreeAlignedDeviceViewScanNode();
+ public static TreeNonAlignedDeviceViewScanNode deserialize(ByteBuffer
byteBuffer) {
+ TreeNonAlignedDeviceViewScanNode node = new
TreeNonAlignedDeviceViewScanNode();
TreeDeviceViewScanNode.deserializeMemberVariables(byteBuffer, node, true);
node.setPlanNodeId(PlanNodeId.deserialize(byteBuffer));
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMatadata.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMatadata.java
index 3d938a9e055..9f77225d6de 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMatadata.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMatadata.java
@@ -277,16 +277,16 @@ public class TestMatadata implements Metadata {
new AlignedDeviceEntry(
IDeviceID.Factory.DEFAULT_FACTORY.create(DEVICE_3),
ImmutableList.of()),
new AlignedDeviceEntry(
- IDeviceID.Factory.DEFAULT_FACTORY.create(DEVICE_5),
ImmutableList.of()),
+ IDeviceID.Factory.DEFAULT_FACTORY.create(DEVICE_6),
ImmutableList.of()),
new NonAlignedAlignedDeviceEntry(
- IDeviceID.Factory.DEFAULT_FACTORY.create(DEVICE_4),
ImmutableList.of()));
+ IDeviceID.Factory.DEFAULT_FACTORY.create(DEVICE_5),
ImmutableList.of()));
}
return ImmutableList.of(
new AlignedDeviceEntry(
IDeviceID.Factory.DEFAULT_FACTORY.create(DEVICE_3),
ImmutableList.of()),
new AlignedDeviceEntry(
- IDeviceID.Factory.DEFAULT_FACTORY.create(DEVICE_5),
ImmutableList.of()));
+ IDeviceID.Factory.DEFAULT_FACTORY.create(DEVICE_6),
ImmutableList.of()));
}
if (expressionList.size() == 2) {
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java
index 93b270d8f4d..f54151eaa01 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java
@@ -92,6 +92,7 @@ public class TreeViewTest {
output(
project(
mergeSort(
+ exchange(),
exchange(),
treeAlignedDeviceViewTableScan(
DEFAULT_TREE_DEVICE_VIEW_TABLE_FULL_NAME,
@@ -108,6 +109,13 @@ public class TreeViewTest {
DEFAULT_TREE_DEVICE_VIEW_TABLE_FULL_NAME,
ImmutableList.of("tag1", "s1"),
ImmutableSet.of("tag1", "s1")));
+
+ assertPlan(
+ planTester.getFragmentPlan(2),
+ treeNonAlignedDeviceViewTableScan(
+ DEFAULT_TREE_DEVICE_VIEW_TABLE_FULL_NAME,
+ ImmutableList.of("tag1", "s1"),
+ ImmutableSet.of("tag1", "s1")));
}
@Test