From eee581e1c1f98da2c39688d0d8f53e653b31521f Mon Sep 17 00:00:00 2001 From: Beyyes Date: Mon, 4 Sep 2023 20:46:12 +0800 Subject: [PATCH] Perfect plan graph for last query scan node --- .../planner/plan/node/PlanGraphPrinter.java | 7 +++++++ .../node/source/AlignedLastQueryScanNode.java | 20 ++++++++++++++----- .../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 ec63414d2f..ff72ddf559 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, PlanGraphPrinter List 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, 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 60648d27a2..d4c1c3e539 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 a15302b0dd..aa89e61bd0 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 -- GitLab