You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ca...@apache.org on 2023/09/04 07:13:44 UTC

[iotdb] 01/01: perfect plan graph for last query scan node

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

caogaofei pushed a commit to branch beyyes/last_query_scan_graph
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit f4b16d79f0c793ab288ff4451cf3218fb906a611
Author: Beyyes <cg...@foxmail.com>
AuthorDate: Mon Sep 4 15:13:26 2023 +0800

    perfect plan graph for last query scan node
---
 .../plan/planner/plan/node/PlanGraphPrinter.java     |  7 +++++++
 .../plan/node/source/AlignedLastQueryScanNode.java   | 20 +++++++++++++++-----
 .../planner/plan/node/source/LastQueryScanNode.java  | 20 +++++++++++++++-----
 3 files changed, 37 insertions(+), 10 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 ec63414d2f7..ff72ddf559c 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
@@ -60,6 +60,7 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.IntoPathDescr
 import org.apache.iotdb.tsfile.utils.Pair;
 
 import org.apache.commons.lang3.Validate;
+import org.eclipse.jetty.util.StringUtil;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -384,6 +385,9 @@ public class PlanGraphPrinter extends PlanVisitor<List<String>, PlanGraphPrinter
     List<String> boxValue = new ArrayList<>();
     boxValue.add(String.format("LastQueryScan-%s", node.getPlanNodeId().getId()));
     boxValue.add(String.format("Series: %s", node.getSeriesPath()));
+    if (StringUtil.isNotBlank(node.getOutputViewPath())) {
+      boxValue.add(String.format("ViewPath: %s", node.getOutputViewPath()));
+    }
     boxValue.add(printRegion(node.getRegionReplicaSet()));
     return render(node, boxValue, context);
   }
@@ -397,6 +401,9 @@ public class PlanGraphPrinter extends PlanVisitor<List<String>, PlanGraphPrinter
         String.format(
             "Series: %s%s",
             node.getSeriesPath().getDevice(), node.getSeriesPath().getMeasurementList()));
+    if (StringUtil.isNotBlank(node.getOutputViewPath())) {
+      boxValue.add(String.format("ViewPath: %s", node.getOutputViewPath()));
+    }
     boxValue.add(printRegion(node.getRegionReplicaSet()));
     return render(node, boxValue, context);
   }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedLastQueryScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedLastQueryScanNode.java
index 60648d27a2b..d4c1c3e5396 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedLastQueryScanNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedLastQueryScanNode.java
@@ -32,6 +32,7 @@ import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
 import com.google.common.collect.ImmutableList;
+import org.eclipse.jetty.util.StringUtil;
 
 import java.io.DataOutputStream;
 import java.io.IOException;
@@ -158,11 +159,20 @@ public class AlignedLastQueryScanNode extends LastSeriesSourceNode {
 
   @Override
   public String toString() {
-    return String.format(
-        "AlignedLastQueryScanNode-%s:[SeriesPath: %s, DataRegion: %s]",
-        this.getPlanNodeId(),
-        this.getSeriesPath().getFormattedString(),
-        PlanNodeUtil.printRegionReplicaSet(this.getRegionReplicaSet()));
+    if (StringUtil.isNotBlank(outputViewPath)) {
+      return String.format(
+          "AlignedLastQueryScanNode-%s:[SeriesPath: %s, ViewPath: %s, DataRegion: %s]",
+          this.getPlanNodeId(),
+          this.getSeriesPath().getFormattedString(),
+          this.getOutputViewPath(),
+          PlanNodeUtil.printRegionReplicaSet(this.getRegionReplicaSet()));
+    } else {
+      return String.format(
+          "AlignedLastQueryScanNode-%s:[SeriesPath: %s, DataRegion: %s]",
+          this.getPlanNodeId(),
+          this.getSeriesPath().getFormattedString(),
+          PlanNodeUtil.printRegionReplicaSet(this.getRegionReplicaSet()));
+    }
   }
 
   @Override
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastQueryScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastQueryScanNode.java
index a15302b0dd3..aa89e61bd0a 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastQueryScanNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastQueryScanNode.java
@@ -32,6 +32,7 @@ import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
 import com.google.common.collect.ImmutableList;
+import org.eclipse.jetty.util.StringUtil;
 
 import java.io.DataOutputStream;
 import java.io.IOException;
@@ -164,11 +165,20 @@ public class LastQueryScanNode extends LastSeriesSourceNode {
 
   @Override
   public String toString() {
-    return String.format(
-        "LastQueryScanNode-%s:[SeriesPath: %s, DataRegion: %s]",
-        this.getPlanNodeId(),
-        this.getSeriesPath(),
-        PlanNodeUtil.printRegionReplicaSet(getRegionReplicaSet()));
+    if (StringUtil.isNotBlank(outputViewPath)) {
+      return String.format(
+          "LastQueryScanNode-%s:[SeriesPath: %s, ViewPath: %s, DataRegion: %s]",
+          this.getPlanNodeId(),
+          this.getSeriesPath(),
+          this.getOutputViewPath(),
+          PlanNodeUtil.printRegionReplicaSet(getRegionReplicaSet()));
+    } else {
+      return String.format(
+          "LastQueryScanNode-%s:[SeriesPath: %s, DataRegion: %s]",
+          this.getPlanNodeId(),
+          this.getSeriesPath(),
+          PlanNodeUtil.printRegionReplicaSet(getRegionReplicaSet()));
+    }
   }
 
   @Override