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

Reply via email to