You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by er...@apache.org on 2022/08/17 04:05:36 UTC

[iotdb] branch improve/iotdb-4165 created (now 3f0a473e26)

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

ericpai pushed a change to branch improve/iotdb-4165
in repository https://gitbox.apache.org/repos/asf/iotdb.git


      at 3f0a473e26 [IOTDB-4165] PlanGraphPrinter supports TransformNode

This branch includes the following new commits:

     new 3f0a473e26 [IOTDB-4165] PlanGraphPrinter supports TransformNode

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[iotdb] 01/01: [IOTDB-4165] PlanGraphPrinter supports TransformNode

Posted by er...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ericpai pushed a commit to branch improve/iotdb-4165
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 3f0a473e2666ec5bc2db572fbb241d45616d4468
Author: ericpai <er...@hotmail.com>
AuthorDate: Wed Aug 17 12:05:14 2022 +0800

    [IOTDB-4165] PlanGraphPrinter supports TransformNode
---
 .../plan/planner/plan/node/PlanGraphPrinter.java   | 36 +++++++++++++++-------
 1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanGraphPrinter.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanGraphPrinter.java
index 0a862b7cd2..508730a854 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanGraphPrinter.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanGraphPrinter.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.mpp.plan.planner.plan.node;
 
 import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
 import org.apache.iotdb.commons.partition.DataPartition;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.AggregationNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.DeviceMergeNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.DeviceViewNode;
@@ -33,6 +34,7 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.OffsetNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.SlidingWindowAggregationNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.SortNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.TimeJoinNode;
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.TransformNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.sink.FragmentSinkNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.source.AlignedSeriesAggregationScanNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.source.AlignedSeriesScanNode;
@@ -50,14 +52,14 @@ import java.util.Map;
 public class PlanGraphPrinter extends PlanVisitor<List<String>, PlanGraphPrinter.GraphContext> {
 
   private static final String INDENT = " ";
-  private static final String HENG = "─";
-  private static final String SHU = "│";
+  private static final String HORIZONTAL = "─";
+  private static final String VERTICAL = "│";
   private static final String LEFT_BOTTOM = "└";
   private static final String RIGHT_BOTTOM = "┘";
   private static final String LEFT_TOP = "┌";
   private static final String RIGHT_TOP = "┐";
-  private static final String SHANG = "┴";
-  private static final String XIA = "┬";
+  private static final String UP = "┴";
+  private static final String DOWN = "┬";
   private static final String CROSS = "┼";
 
   private static final int BOX_MARGIN = 1;
@@ -247,6 +249,18 @@ public class PlanGraphPrinter extends PlanVisitor<List<String>, PlanGraphPrinter
     return render(node, boxValue, context);
   }
 
+  @Override
+  public List<String> visitTransform(TransformNode node, GraphContext context) {
+    List<String> boxValue = new ArrayList<>();
+    boxValue.add(String.format("Transform-%s", node.getPlanNodeId().getId()));
+    for (int i = 0; i < node.getOutputExpressions().length; i++) {
+      Expression exp = node.getOutputExpressions()[i];
+      boxValue.add(
+          String.format("Exp-%d[%s]: %s", i, exp.getExpressionType(), exp.getExpressionString()));
+    }
+    return render(node, boxValue, context);
+  }
+
   private String printRegion(TRegionReplicaSet regionReplicaSet) {
     return String.format(
         "Partition: %s",
@@ -276,7 +290,7 @@ public class PlanGraphPrinter extends PlanVisitor<List<String>, PlanGraphPrinter
           continue;
         }
         if (i == box.startPosition || i == box.endPosition) {
-          line.append(SHU);
+          line.append(VERTICAL);
           continue;
         }
         if (i - box.startPosition - 1 < valueLine.length()) {
@@ -298,14 +312,14 @@ public class PlanGraphPrinter extends PlanVisitor<List<String>, PlanGraphPrinter
       for (int i = 0; i < CONNECTION_LINE_HEIGHT; i++) {
         StringBuilder line = new StringBuilder();
         for (int j = 0; j < box.lineWidth; j++) {
-          line.append(j == box.midPosition ? SHU : INDENT);
+          line.append(j == box.midPosition ? VERTICAL : INDENT);
         }
         box.lines.add(line.toString());
       }
     } else {
       Map<Integer, String> symbolMap = new HashMap<>();
       Map<Integer, Boolean> childMidPositionMap = new HashMap<>();
-      symbolMap.put(box.midPosition, SHANG);
+      symbolMap.put(box.midPosition, UP);
       for (int i = 0; i < children.size(); i++) {
         int childMidPosition = getChildMidPosition(children, i);
         childMidPositionMap.put(childMidPosition, true);
@@ -314,7 +328,7 @@ public class PlanGraphPrinter extends PlanVisitor<List<String>, PlanGraphPrinter
           continue;
         }
         symbolMap.put(
-            childMidPosition, i == 0 ? LEFT_TOP : i == children.size() - 1 ? RIGHT_TOP : XIA);
+            childMidPosition, i == 0 ? LEFT_TOP : i == children.size() - 1 ? RIGHT_TOP : DOWN);
       }
       StringBuilder line1 = new StringBuilder();
       for (int i = 0; i < box.lineWidth; i++) {
@@ -323,14 +337,14 @@ public class PlanGraphPrinter extends PlanVisitor<List<String>, PlanGraphPrinter
           line1.append(INDENT);
           continue;
         }
-        line1.append(symbolMap.getOrDefault(i, HENG));
+        line1.append(symbolMap.getOrDefault(i, HORIZONTAL));
       }
       box.lines.add(line1.toString());
 
       for (int row = 1; row < CONNECTION_LINE_HEIGHT; row++) {
         StringBuilder nextLine = new StringBuilder();
         for (int i = 0; i < box.lineWidth; i++) {
-          nextLine.append(childMidPositionMap.containsKey(i) ? SHU : INDENT);
+          nextLine.append(childMidPositionMap.containsKey(i) ? VERTICAL : INDENT);
         }
         box.lines.add(nextLine.toString());
       }
@@ -363,7 +377,7 @@ public class PlanGraphPrinter extends PlanVisitor<List<String>, PlanGraphPrinter
       } else if (i == box.endPosition) {
         line.append(isTopEdge ? RIGHT_TOP : RIGHT_BOTTOM);
       } else {
-        line.append(HENG);
+        line.append(HORIZONTAL);
       }
     }
     return line.toString();