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

morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new af462b07c7 [enhancement](explain) compress descriptor table explain 
string (#14152)
af462b07c7 is described below

commit af462b07c7d142fcf87b6c856033930ee6273e33
Author: morrySnow <[email protected]>
AuthorDate: Thu Nov 17 15:19:17 2022 +0800

    [enhancement](explain) compress descriptor table explain string (#14152)
    
    1. compress slot descriptor explain string to one row
    2. remove unmaterialized tuple descriptor and slot descriptor
    
    before this PR descriptor table explain string is like this:
    ```
    TupleDescriptor{id=0, tbl=lineitem, byteSize=176, materialized=true}
      SlotDescriptor{id=0, col=l_shipdate, type=DATEV2}
        parent=0
        materialized=true
        byteSize=4
        byteOffset=0
        nullIndicatorByte=0
        nullIndicatorBit=-1
        nullable=false
        slotIdx=0
    
      SlotDescriptor{id=1, col=l_orderkey, type=BIGINT}
        parent=0
        materialized=true
        byteSize=8
        byteOffset=24
        nullIndicatorByte=0
        nullIndicatorBit=-1
        nullable=false
        slotIdx=6
    ```
    
    after this PR descriptor table explain string is like this:
    ```
    TupleDescriptor{id=2, tbl=lineitem}
      SlotDescriptor{id=1, col=l_extendedprice, type=DECIMAL(15,2), 
nullable=false}
      SlotDescriptor{id=2, col=l_discount, type=DECIMAL(15,2), nullable=false}
    ```
---
 .../org/apache/doris/analysis/DescriptorTable.java |  8 +--
 .../org/apache/doris/analysis/SlotDescriptor.java  | 16 ++----
 .../org/apache/doris/analysis/TupleDescriptor.java |  8 +--
 .../java/org/apache/doris/planner/PlannerTest.java | 61 +++++++++++-----------
 .../doris/planner/TableFunctionPlanTest.java       | 60 +++++++++------------
 5 files changed, 67 insertions(+), 86 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DescriptorTable.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DescriptorTable.java
index dcf05ad6d3..7c1b62dcc5 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DescriptorTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DescriptorTable.java
@@ -211,10 +211,10 @@ public class DescriptorTable {
         StringBuilder out = new StringBuilder();
         out.append("tuples:\n");
         for (TupleDescriptor desc : tupleDescs.values()) {
-            out.append(desc + "\n");
+            out.append(desc).append("\n");
         }
         out.append("\n ");
-        out.append("slotDesc size: " + slotDescs.size() + "\n");
+        out.append("slotDesc size: ").append(slotDescs.size()).append("\n");
         for (SlotDescriptor desc : slotDescs.values()) {
             out.append(desc.debugString());
             out.append("\n");
@@ -227,7 +227,9 @@ public class DescriptorTable {
         StringBuilder out = new StringBuilder();
         out.append("\nTuples:\n");
         for (TupleDescriptor desc : tupleDescs.values()) {
-            out.append(desc.getExplainString() + "\n");
+            if (desc.isMaterialized()) {
+                out.append(desc.getExplainString()).append("\n");
+            }
         }
         return out.toString();
     }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java
index 2c10a02f76..f4a67fe167 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java
@@ -328,19 +328,9 @@ public class SlotDescriptor {
         StringBuilder builder = new StringBuilder();
         String colStr = (column == null ? "null" : column.getName());
         String typeStr = (type == null ? "null" : type.toString());
-        String parentTupleId = (parent == null) ? "null" : 
parent.getId().toString();
-        
builder.append(prefix).append("SlotDescriptor{").append("id=").append(id).append(",
 col=").append(colStr)
-                .append(", type=").append(typeStr).append("}\n");
-
-        prefix += "  ";
-        
builder.append(prefix).append("parent=").append(parentTupleId).append("\n");
-        
builder.append(prefix).append("materialized=").append(isMaterialized).append("\n");
-        
builder.append(prefix).append("byteSize=").append(byteSize).append("\n");
-        
builder.append(prefix).append("byteOffset=").append(byteOffset).append("\n");
-        
builder.append(prefix).append("nullIndicatorByte=").append(nullIndicatorByte).append("\n");
-        
builder.append(prefix).append("nullIndicatorBit=").append(nullIndicatorBit).append("\n");
-        
builder.append(prefix).append("nullable=").append(isNullable).append("\n");
-        builder.append(prefix).append("slotIdx=").append(slotIdx).append("\n");
+        builder.append(prefix).append("SlotDescriptor{")
+                .append("id=").append(id).append(", 
col=").append(colStr).append(", type=").append(typeStr)
+                .append(", nullable=").append(isNullable).append("}");
         return builder.toString();
     }
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/TupleDescriptor.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/TupleDescriptor.java
index df50dddffd..d27c8f4725 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/TupleDescriptor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/TupleDescriptor.java
@@ -411,12 +411,12 @@ public class TupleDescriptor {
         builder.append(MoreObjects.toStringHelper(this)
                 .add("id", id.asInt())
                 .add("tbl", tblStr)
-                .add("byteSize", byteSize)
-                .add("materialized", isMaterialized)
-                .toString());
+                .add("byteSize", byteSize));
         builder.append("\n");
         for (SlotDescriptor slot : slots) {
-            builder.append(slot.getExplainString(prefix)).append("\n");
+            if (slot.isMaterialized()) {
+                builder.append(slot.getExplainString(prefix)).append("\n");
+            }
         }
         return builder.toString();
     }
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/PlannerTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/planner/PlannerTest.java
index 8d894ef05b..7b835d7754 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/PlannerTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/PlannerTest.java
@@ -27,7 +27,6 @@ import org.apache.doris.qe.StmtExecutor;
 import org.apache.doris.utframe.TestWithFeService;
 
 import org.apache.commons.lang3.StringUtils;
-import org.junit.Assert;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
@@ -80,7 +79,7 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor1.execute();
         Planner planner1 = stmtExecutor1.planner();
         String plan1 = planner1.getExplainString(new ExplainOptions(false, 
false));
-        Assert.assertEquals(1, StringUtils.countMatches(plan1, "UNION"));
+        Assertions.assertEquals(1, StringUtils.countMatches(plan1, "UNION"));
         String sql2 = "explain select * from db1.tbl1 where k1='a' and k4=1\n"
                 + "union distinct\n"
                 + "  (select * from db1.tbl1 where k1='b' and k4=2\n"
@@ -104,7 +103,7 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor2.execute();
         Planner planner2 = stmtExecutor2.planner();
         String plan2 = planner2.getExplainString(new ExplainOptions(false, 
false));
-        Assert.assertEquals(4, StringUtils.countMatches(plan2, "UNION"));
+        Assertions.assertEquals(4, StringUtils.countMatches(plan2, "UNION"));
 
         // intersect
         String sql3 = "explain select * from\n"
@@ -119,7 +118,7 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor3.execute();
         Planner planner3 = stmtExecutor3.planner();
         String plan3 = planner3.getExplainString(new ExplainOptions(false, 
false));
-        Assert.assertEquals(1, StringUtils.countMatches(plan3, "INTERSECT"));
+        Assertions.assertEquals(1, StringUtils.countMatches(plan3, 
"INTERSECT"));
         String sql4 = "explain select * from db1.tbl1 where k1='a' and k4=1\n"
                 + "intersect distinct\n"
                 + "  (select * from db1.tbl1 where k1='b' and k4=2\n"
@@ -144,7 +143,7 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor4.execute();
         Planner planner4 = stmtExecutor4.planner();
         String plan4 = planner4.getExplainString(new ExplainOptions(false, 
false));
-        Assert.assertEquals(3, StringUtils.countMatches(plan4, "INTERSECT"));
+        Assertions.assertEquals(3, StringUtils.countMatches(plan4, 
"INTERSECT"));
 
         // except
         String sql5 = "explain select * from\n"
@@ -159,7 +158,7 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor5.execute();
         Planner planner5 = stmtExecutor5.planner();
         String plan5 = planner5.getExplainString(new ExplainOptions(false, 
false));
-        Assert.assertEquals(1, StringUtils.countMatches(plan5, "EXCEPT"));
+        Assertions.assertEquals(1, StringUtils.countMatches(plan5, "EXCEPT"));
 
         String sql6 = "select * from db1.tbl1 where k1='a' and k4=1\n"
                 + "except\n"
@@ -173,7 +172,7 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor6.execute();
         Planner planner6 = stmtExecutor6.planner();
         String plan6 = planner6.getExplainString(new ExplainOptions(false, 
false));
-        Assert.assertEquals(1, StringUtils.countMatches(plan6, "EXCEPT"));
+        Assertions.assertEquals(1, StringUtils.countMatches(plan6, "EXCEPT"));
 
         String sql7 = "select * from db1.tbl1 where k1='a' and k4=1\n"
                 + "except distinct\n"
@@ -187,7 +186,7 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor7.execute();
         Planner planner7 = stmtExecutor7.planner();
         String plan7 = planner7.getExplainString(new ExplainOptions(false, 
false));
-        Assert.assertEquals(1, StringUtils.countMatches(plan7, "EXCEPT"));
+        Assertions.assertEquals(1, StringUtils.countMatches(plan7, "EXCEPT"));
 
         // mixed
         String sql8 = "select * from db1.tbl1 where k1='a' and k4=1\n"
@@ -202,9 +201,9 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor8.execute();
         Planner planner8 = stmtExecutor8.planner();
         String plan8 = planner8.getExplainString(new ExplainOptions(false, 
false));
-        Assert.assertEquals(1, StringUtils.countMatches(plan8, "UNION"));
-        Assert.assertEquals(1, StringUtils.countMatches(plan8, "INTERSECT"));
-        Assert.assertEquals(1, StringUtils.countMatches(plan8, "EXCEPT"));
+        Assertions.assertEquals(1, StringUtils.countMatches(plan8, "UNION"));
+        Assertions.assertEquals(1, StringUtils.countMatches(plan8, 
"INTERSECT"));
+        Assertions.assertEquals(1, StringUtils.countMatches(plan8, "EXCEPT"));
 
         String sql9 = "explain select * from db1.tbl1 where k1='a' and k4=1\n"
                 + "intersect distinct\n"
@@ -230,18 +229,18 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor9.execute();
         Planner planner9 = stmtExecutor9.planner();
         String plan9 = planner9.getExplainString(new ExplainOptions(false, 
false));
-        Assert.assertEquals(2, StringUtils.countMatches(plan9, "UNION"));
-        Assert.assertEquals(3, StringUtils.countMatches(plan9, "INTERSECT"));
-        Assert.assertEquals(2, StringUtils.countMatches(plan9, "EXCEPT"));
+        Assertions.assertEquals(2, StringUtils.countMatches(plan9, "UNION"));
+        Assertions.assertEquals(3, StringUtils.countMatches(plan9, 
"INTERSECT"));
+        Assertions.assertEquals(2, StringUtils.countMatches(plan9, "EXCEPT"));
 
         String sql10 = "select 499 union select 670 except select 499";
         StmtExecutor stmtExecutor10 = new StmtExecutor(connectContext, sql10);
         stmtExecutor10.execute();
         Planner planner10 = stmtExecutor10.planner();
         List<PlanFragment> fragments10 = planner10.getFragments();
-        Assert.assertTrue(fragments10.get(0).getPlanRoot().getFragment()
+        Assertions.assertTrue(fragments10.get(0).getPlanRoot().getFragment()
                 .getPlanRoot().getChild(0) instanceof AggregationNode);
-        Assert.assertTrue(fragments10.get(0).getPlanRoot()
+        Assertions.assertTrue(fragments10.get(0).getPlanRoot()
                 .getFragment().getPlanRoot().getChild(1) instanceof UnionNode);
 
         String sql11 = "SELECT a.x FROM\n"
@@ -252,7 +251,7 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor11.execute();
         Planner planner11 = stmtExecutor11.planner();
         SetOperationNode setNode11 = (SetOperationNode) 
(planner11.getFragments().get(1).getPlanRoot());
-        Assert.assertEquals(2, 
setNode11.getMaterializedConstExprLists().size());
+        Assertions.assertEquals(2, 
setNode11.getMaterializedConstExprLists().size());
 
         String sql12 = "SELECT a.x \n"
                 + "FROM (SELECT '01' x) a \n"
@@ -298,9 +297,9 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor1.execute();
         Planner planner1 = stmtExecutor1.planner();
         List<PlanFragment> fragments1 = planner1.getFragments();
-        Assert.assertEquals("if",
+        Assertions.assertEquals("if",
                 
fragments1.get(0).getPlanRoot().conjuncts.get(0).getChild(0).getFn().functionName());
-        Assert.assertEquals(3, 
fragments1.get(0).getPlanRoot().getChild(0).getChild(0).conjuncts.size());
+        Assertions.assertEquals(3, 
fragments1.get(0).getPlanRoot().getChild(0).getChild(0).conjuncts.size());
 
         String sql2 =
                 "SELECT\n"
@@ -325,7 +324,7 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor2.execute();
         Planner planner2 = stmtExecutor2.planner();
         List<PlanFragment> fragments2 = planner2.getFragments();
-        Assert.assertEquals(4, 
fragments2.get(0).getPlanRoot().getChild(0).conjuncts.size());
+        Assertions.assertEquals(4, 
fragments2.get(0).getPlanRoot().getChild(0).conjuncts.size());
 
     }
 
@@ -340,7 +339,7 @@ public class PlannerTest extends TestWithFeService {
         stmtExecutor1.execute();
         Planner planner1 = stmtExecutor1.planner();
         String plan1 = planner1.getExplainString(new ExplainOptions(true, 
false));
-        Assert.assertEquals(2, StringUtils.countMatches(plan1, 
"nullIndicatorBit=0"));
+        Assertions.assertEquals(2, StringUtils.countMatches(plan1, 
"nullable=true"));
     }
 
     @Test
@@ -348,7 +347,7 @@ public class PlannerTest extends TestWithFeService {
         String sql = "select count(k1) from db1.tbl2";
         StmtExecutor stmtExecutor = new StmtExecutor(connectContext, sql);
         stmtExecutor.execute();
-        Assert.assertNotNull(stmtExecutor.planner());
+        Assertions.assertNotNull(stmtExecutor.planner());
     }
 
     @Test
@@ -360,13 +359,13 @@ public class PlannerTest extends TestWithFeService {
                 + "GROUP BY a.k1, a.k3";
         StmtExecutor stmtExecutor = new StmtExecutor(connectContext, sql);
         stmtExecutor.execute();
-        Assert.assertNotNull(stmtExecutor.planner());
+        Assertions.assertNotNull(stmtExecutor.planner());
         Planner planner = stmtExecutor.planner();
         List<PlanFragment> fragments = planner.getFragments();
-        Assert.assertTrue(fragments.size() > 0);
+        Assertions.assertTrue(fragments.size() > 0);
         PlanNode node = fragments.get(0).getPlanRoot().getChild(0);
-        Assert.assertTrue(node.getChildren().size() > 0);
-        Assert.assertTrue(node instanceof SortNode);
+        Assertions.assertTrue(node.getChildren().size() > 0);
+        Assertions.assertTrue(node instanceof SortNode);
         SortNode sortNode = (SortNode) node;
         List<Expr> tupleExprs = sortNode.resolvedTupleExprs;
         List<Expr> sortTupleExprs = 
sortNode.getSortInfo().getSortTupleSlotExprs();
@@ -400,7 +399,7 @@ public class PlannerTest extends TestWithFeService {
             Planner planner2 = stmtExecutor2.planner();
             String plan2 = planner2.getExplainString(new ExplainOptions(false, 
false));
 
-            Assert.assertEquals(plan1, plan2);
+            Assertions.assertEquals(plan1, plan2);
         };
 
         compare.accept("select * from db1.tbl2 where k1 = 2.0", "select * from 
db1.tbl2 where k1 = 2");
@@ -492,8 +491,8 @@ public class PlannerTest extends TestWithFeService {
         StmtExecutor stmtExecutor = new StmtExecutor(connectContext, qSQL);
         stmtExecutor.execute();
         QueryState state = connectContext.getState();
-        Assert.assertEquals(MysqlStateType.ERR, state.getStateType());
-        Assert.assertTrue(state.getErrorMessage()
+        Assertions.assertEquals(MysqlStateType.ERR, state.getStateType());
+        Assertions.assertTrue(state.getErrorMessage()
                 .contains("you need (at least one of) the LOAD privilege(s) 
for this operation"));
 
         // set to admin user
@@ -503,8 +502,8 @@ public class PlannerTest extends TestWithFeService {
         state = connectContext.getState();
         // still error because we can not do real update in unit test.
         // just check if it pass the priv check.
-        Assert.assertEquals(MysqlStateType.ERR, state.getStateType());
-        Assert.assertTrue(state.getErrorMessage().contains("failed to execute 
update stmt"));
+        Assertions.assertEquals(MysqlStateType.ERR, state.getStateType());
+        Assertions.assertTrue(state.getErrorMessage().contains("failed to 
execute update stmt"));
     }
 
     @Test
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/planner/TableFunctionPlanTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/planner/TableFunctionPlanTest.java
index 78e665ba9c..b29778a076 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/planner/TableFunctionPlanTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/planner/TableFunctionPlanTest.java
@@ -34,7 +34,7 @@ import java.io.File;
 import java.util.UUID;
 
 public class TableFunctionPlanTest {
-    private static String runningDir = "fe/mocked/TableFunctionPlanTest/" + 
UUID.randomUUID().toString() + "/";
+    private static final String runningDir = 
"fe/mocked/TableFunctionPlanTest/" + UUID.randomUUID() + "/";
     private static ConnectContext ctx;
 
     @After
@@ -78,8 +78,8 @@ public class TableFunctionPlanTest {
         Assert.assertTrue(
                 explainString.contains("table function: 
explode_split(`default_cluster:db1`.`tbl1`.`k2`, ',')"));
         Assert.assertTrue(explainString.contains("tuple ids: 0 1"));
-        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp, byteSize=32, materialized=true}"));
-        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e1, 
type=VARCHAR(*)}"));
+        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp, byteSize=32}"));
+        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e1, 
type=VARCHAR(*)"));
     }
 
     /* Case2 without output explode column
@@ -94,8 +94,8 @@ public class TableFunctionPlanTest {
         Assert.assertTrue(
                 explainString.contains("table function: 
explode_split(`default_cluster:db1`.`tbl1`.`k2`, ',')"));
         Assert.assertTrue(explainString.contains("tuple ids: 0 1"));
-        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp, byteSize=32, materialized=true}"));
-        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e1, 
type=VARCHAR(*)}"));
+        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp, byteSize=32}"));
+        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e1, 
type=VARCHAR(*)"));
     }
 
     /* Case3 group by explode column
@@ -115,10 +115,10 @@ public class TableFunctionPlanTest {
         Assert.assertTrue(
                 explainString.contains("table function: 
explode_split(`default_cluster:db1`.`tbl1`.`k2`, ',')"));
         Assert.assertTrue(explainString.contains("tuple ids: 0 1"));
-        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp, byteSize=32, materialized=true}"));
-        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e1, 
type=VARCHAR(*)}"));
+        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp, byteSize=32}"));
+        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e1, 
type=VARCHAR(*)"));
         // group by tuple
-        Assert.assertTrue(explainString.contains("TupleDescriptor{id=2, 
tbl=null, byteSize=32, materialized=true}"));
+        Assert.assertTrue(explainString.contains("TupleDescriptor{id=2, 
tbl=null, byteSize=32}"));
     }
 
     /* Case4 where explode column
@@ -134,8 +134,8 @@ public class TableFunctionPlanTest {
                 explainString.contains("table function: 
explode_split(`default_cluster:db1`.`tbl1`.`k2`, ',')"));
         Assert.assertTrue(explainString.contains("PREDICATES: `e1` = '1'"));
         Assert.assertTrue(explainString.contains("tuple ids: 0 1"));
-        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp, byteSize=32, materialized=true}"));
-        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e1, 
type=VARCHAR(*)}"));
+        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp, byteSize=32}"));
+        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e1, 
type=VARCHAR(*)"));
     }
 
     /* Case5 where normal column
@@ -150,8 +150,8 @@ public class TableFunctionPlanTest {
         Assert.assertTrue(
                 explainString.contains("table function: 
explode_split(`default_cluster:db1`.`tbl1`.`k2`, ',')"));
         Assert.assertTrue(explainString.contains("tuple ids: 0 1"));
-        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp, byteSize=32, materialized=true}"));
-        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e1, 
type=VARCHAR(*)}"));
+        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp, byteSize=32}"));
+        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e1, 
type=VARCHAR(*)"));
         
Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 0, 
"OlapScanNode"));
         Assert.assertTrue(explainString.contains("PREDICATES: `k1` = 1"));
     }
@@ -170,11 +170,11 @@ public class TableFunctionPlanTest {
                 "table function: 
explode_split(`default_cluster:db1`.`tbl1`.`k2`, ',') 
explode_split(`default_cluster:db1`.`tbl1`.`k2`, ',')"));
         Assert.assertTrue(explainString.contains("lateral view tuple id: 1 
2"));
         // lateral view 2 tuple
-        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp2, byteSize=32, materialized=true}"));
-        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e2, 
type=VARCHAR(*)}"));
+        Assert.assertTrue(explainString.contains("TupleDescriptor{id=1, 
tbl=tmp2, byteSize=32}"));
+        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=e2, 
type=VARCHAR(*)"));
         // lateral view 1 tuple
-        Assert.assertTrue(explainString.contains("TupleDescriptor{id=2, 
tbl=tmp1, byteSize=32, materialized=true}"));
-        Assert.assertTrue(explainString.contains("SlotDescriptor{id=2, col=e1, 
type=VARCHAR(*)}"));
+        Assert.assertTrue(explainString.contains("TupleDescriptor{id=2, 
tbl=tmp1, byteSize=32}"));
+        Assert.assertTrue(explainString.contains("SlotDescriptor{id=2, col=e1, 
type=VARCHAR(*)"));
     }
 
     // test explode_split function
@@ -350,8 +350,8 @@ public class TableFunctionPlanTest {
                 explainString.contains("table function: 
explode_split(concat(`a`.`k2`, ',', `a`.`k3`), ',')"));
         Assert.assertTrue(explainString.contains("lateral view tuple id: 1"));
         Assert.assertTrue(explainString.contains("output slot id: 3"));
-        Assert.assertTrue(explainString.contains("SlotDescriptor{id=0, col=k2, 
type=VARCHAR(1)}"));
-        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=k3, 
type=VARCHAR(1)}"));
+        Assert.assertTrue(explainString.contains("SlotDescriptor{id=0, col=k2, 
type=VARCHAR(1)"));
+        Assert.assertTrue(explainString.contains("SlotDescriptor{id=1, col=k3, 
type=VARCHAR(1)"));
     }
 
     // lateral view of subquery
@@ -368,7 +368,7 @@ public class TableFunctionPlanTest {
         Assert.assertTrue(explainString.contains("lateral view tuple id: 2"));
         Assert.assertTrue(explainString.contains("output slot id: 2"));
         Assert.assertTrue(explainString.contains("tuple ids: 0 2"));
-        Assert.assertTrue(explainString.contains("SlotDescriptor{id=2, col=e1, 
type=VARCHAR(*)}"));
+        Assert.assertTrue(explainString.contains("SlotDescriptor{id=2, col=e1, 
type=VARCHAR(*)"));
     }
 
     /*
@@ -384,7 +384,7 @@ public class TableFunctionPlanTest {
         Assert.assertTrue(explainString.contains("lateral view tuple id: 3"));
         Assert.assertTrue(explainString.contains("output slot id: 3"));
         Assert.assertTrue(explainString.contains("tuple ids: 1 3"));
-        Assert.assertTrue(explainString.contains("SlotDescriptor{id=3, col=e1, 
type=VARCHAR(*)}"));
+        Assert.assertTrue(explainString.contains("SlotDescriptor{id=3, col=e1, 
type=VARCHAR(*)"));
     }
 
     /*
@@ -403,29 +403,19 @@ public class TableFunctionPlanTest {
         Assert.assertTrue(explainString.contains("tuple ids: 1 3"));
         String formatString = explainString.replaceAll(" ", "");
         Assert.assertTrue(formatString.contains(
-                "SlotDescriptor{id=0,col=k1,type=INT}\n"
-                        + "parent=0\n"
-                        + "materialized=true"
+                "SlotDescriptor{id=0,col=k1,type=INT"
         ));
         Assert.assertTrue(formatString.contains(
-                "SlotDescriptor{id=1,col=k2,type=VARCHAR(1)}\n"
-                        + "parent=0\n"
-                        + "materialized=true"
+                "SlotDescriptor{id=1,col=k2,type=VARCHAR(1)"
         ));
         Assert.assertTrue(formatString.contains(
-                "SlotDescriptor{id=2,col=null,type=INT}\n"
-                        + "parent=1\n"
-                        + "materialized=true"
+                "SlotDescriptor{id=2,col=null,type=INT"
         ));
         Assert.assertTrue(formatString.contains(
-                "SlotDescriptor{id=3,col=null,type=VARCHAR(*)}\n"
-                        + "parent=1\n"
-                        + "materialized=true"
+                "SlotDescriptor{id=3,col=null,type=VARCHAR(*)"
         ));
         Assert.assertTrue(formatString.contains(
-                "SlotDescriptor{id=6,col=e1,type=VARCHAR(*)}\n"
-                        + "parent=3\n"
-                        + "materialized=true"
+                "SlotDescriptor{id=6,col=e1,type=VARCHAR(*)"
         ));
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to