This is an automated email from the ASF dual-hosted git repository.
zabetak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/master by this push:
new ca03a4e Enable JdbcTest#testBushy and update expected plan (NobiGo)
ca03a4e is described below
commit ca03a4e78d76f3264b193ab5bc8b9f8a8798311a
Author: NobiGo <[email protected]>
AuthorDate: Fri Jul 16 20:45:06 2021 +0800
Enable JdbcTest#testBushy and update expected plan (NobiGo)
The test runs reasonably fast and the current bushy plan is
the expected one.
Close apache/calcite#2462
---
.../test/java/org/apache/calcite/test/JdbcTest.java | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
index a51896d..5023db6 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -1193,7 +1193,6 @@ public class JdbcTest {
* First join sales_fact_1997 to customer;
* in parallel join product to product_class;
* then join the results. */
- @Disabled("extremely slow - a bit better if you disable ProjectMergeRule")
@Test void testBushy() {
CalciteAssert.that()
.with(CalciteAssert.Config.FOODMART_CLONE)
@@ -1206,14 +1205,17 @@ public class JdbcTest {
+ "and pc.\"product_department\" = 'Snacks'\n")
.explainMatches("including all attributes ",
CalciteAssert.checkMaskedResultContains(""
- + "EnumerableCalcRel(expr#0..56=[{inputs}], expr#57=['San
Francisco'], expr#58=[=($t9, $t57)], expr#59=['Snacks'], expr#60=[=($t32,
$t59)], expr#61=[AND($t58, $t60)], product_id=[$t49], time_id=[$t50],
customer_id=[$t51], promotion_id=[$t52], store_id=[$t53], store_sales=[$t54],
store_cost=[$t55], unit_sales=[$t56], customer_id0=[$t0], account_num=[$t1],
lname=[$t2], fname=[$t3], mi=[$t4], address1=[$t5], address2=[$t6],
address3=[$t7], address4=[$t8], city=[$t9], state [...]
- + " EnumerableJoinRel(condition=[=($51, $0)],
joinType=[inner]): rowcount = 86837.0, cumulative cost = {726774.2819018068
rows, 98792.0 cpu, 0.0 io}\n"
- + " EnumerableTableScan(table=[[foodmart2, customer]]):
rowcount = 10281.0, cumulative cost = {10281.0 rows, 10282.0 cpu, 0.0 io}\n"
- + " EnumerableJoinRel(condition=[=($5, $0)],
joinType=[inner]): rowcount = 86837.0, cumulative cost = {447842.86095661717
rows, 88510.0 cpu, 0.0 io}\n"
- + " EnumerableTableScan(table=[[foodmart2,
product_class]]): rowcount = 110.0, cumulative cost = {110.0 rows, 111.0 cpu,
0.0 io}\n"
- + " EnumerableJoinRel(condition=[=($15, $1)],
joinType=[inner]): rowcount = 86837.0, cumulative cost = {273541.80811638 rows,
88399.0 cpu, 0.0 io}\n"
- + " EnumerableTableScan(table=[[foodmart2,
product]]): rowcount = 1560.0, cumulative cost = {1560.0 rows, 1561.0 cpu, 0.0
io}\n"
- + " EnumerableTableScan(table=[[foodmart2,
sales_fact_1997]]): rowcount = 86837.0, cumulative cost = {86837.0 rows,
86838.0 cpu, 0.0 io}\n"));
+ + "EnumerableCalc(expr#0..56=[{inputs}],
product_class_id=[$t5], product_id=[$t20], customer_id=[$t22], time_id=[$t21],
promotion_id=[$t23], store_id=[$t24], store_sales=[$t25], store_cost=[$t26],
unit_sales=[$t27], account_num=[$t29], lname=[$t30], fname=[$t31], mi=[$t32],
address1=[$t33], address2=[$t34], address3=[$t35], address4=[$t36],
city=[$t37], state_province=[$t38], postal_code=[$t39], country=[$t40],
customer_region_id=[$t41], phone1=[$t42], phone2=[$t43], bi [...]
+ + " EnumerableHashJoin(condition=[=($6, $20)],
joinType=[inner]): rowcount = 1.1633589871707373E10, cumulative cost =
{1.1674077494397076E10 rows, 4.4177009295063056E7 cpu, 0.0 io}\n"
+ + " EnumerableHashJoin(condition=[=($0, $5)],
joinType=[inner]): rowcount = 3861.0, cumulative cost = {7154.755446284958
rows, 3102.0 cpu, 0.0 io}\n"
+ + " EnumerableCalc(expr#0..4=[{inputs}],
expr#5=['Snacks':VARCHAR(30)], expr#6=[=($t3, $t5)], proj#0..4=[{exprs}],
$condition=[$t6]): rowcount = 16.5, cumulative cost = {126.5 rows, 1541.0 cpu,
0.0 io}\n"
+ + " EnumerableTableScan(table=[[foodmart2,
product_class]]): rowcount = 110.0, cumulative cost = {110.0 rows, 111.0 cpu,
0.0 io}\n"
+ + " EnumerableTableScan(table=[[foodmart2, product]]):
rowcount = 1560.0, cumulative cost = {1560.0 rows, 1561.0 cpu, 0.0 io}\n"
+ + " EnumerableMergeJoin(condition=[=($2, $8)],
joinType=[inner]): rowcount = 2.0087351932499997E7, cumulative cost =
{2.0361228232499994E7 rows, 4.4173907295063056E7 cpu, 0.0 io}\n"
+ + " EnumerableSort(sort0=[$2], dir0=[ASC]): rowcount =
86837.0, cumulative cost = {173674.0 rows, 4.3536484295063056E7 cpu, 0.0 io}\n"
+ + " EnumerableTableScan(table=[[foodmart2,
sales_fact_1997]]): rowcount = 86837.0, cumulative cost = {86837.0 rows,
86838.0 cpu, 0.0 io}\n"
+ + " EnumerableCalc(expr#0..28=[{inputs}], expr#29=['San
Francisco':VARCHAR(30)], expr#30=[=($t9, $t29)], proj#0..28=[{exprs}],
$condition=[$t30]): rowcount = 1542.1499999999999, cumulative cost = {11823.15
rows, 637423.0 cpu, 0.0 io}\n"
+ + " EnumerableTableScan(table=[[foodmart2,
customer]]): rowcount = 10281.0, cumulative cost = {10281.0 rows, 10282.0 cpu,
0.0 io}\n"));
}
private static final String[] QUERIES = {