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]