diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostModelV1.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostModelV1.java index 7704c9630fd25c..b2fe0f94578113 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostModelV1.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostModelV1.java @@ -61,16 +61,21 @@ class CostModelV1 extends PlanVisitor { static final double BROADCAST_JOIN_SKEW_PENALTY_LIMIT = 2.0; static final double RANDOM_SHUFFLE_TO_HASH_SHUFFLE_FACTOR = 0.1; private final int beNumber; + private final int parallelInstance; public CostModelV1(ConnectContext connectContext) { SessionVariable sessionVariable = connectContext.getSessionVariable(); if (sessionVariable.isPlayNereidsDump()) { // TODO: @bingfeng refine minidump setting, and pass testMinidumpUt beNumber = 1; + parallelInstance = Math.max(1, connectContext.getSessionVariable().getParallelExecInstanceNum()); } else if (sessionVariable.getBeNumberForTest() != -1) { + // shape test, fix the BE number and instance number beNumber = sessionVariable.getBeNumberForTest(); + parallelInstance = 8; } else { beNumber = Math.max(1, ConnectContext.get().getEnv().getClusterInfo().getBackendsNumber(true)); + parallelInstance = Math.max(1, connectContext.getSessionVariable().getParallelExecInstanceNum()); } } @@ -301,7 +306,6 @@ public Cost visitPhysicalHashJoin( // on the output rows, taken on outputRowCount() double probeSideFactor = 1.0; double buildSideFactor = context.getSessionVariable().getBroadcastRightTableScaleFactor(); - int parallelInstance = Math.max(1, context.getSessionVariable().getParallelExecInstanceNum()); int totalInstanceNumber = parallelInstance * beNumber; if (buildSideFactor <= 1.0) { if (buildStats.computeSize() < 1024 * 1024) { diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query14.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query14.out index 7257b4d3c177d5..2d8e3809f42d38 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query14.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query14.out @@ -175,162 +175,3 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------------------PhysicalDistribute ----------------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) --- !ds_shape_14_2 -- -PhysicalCteAnchor ( cteId=CTEId#0 ) ---PhysicalCteProducer ( cteId=CTEId#0 ) -----PhysicalProject -------hashJoin[INNER_JOIN] hashCondition=((item.i_brand_id = x.brand_id) and (item.i_category_id = x.category_id) and (item.i_class_id = x.class_id)) otherCondition=() build RFs:RF6 class_id->[i_class_id];RF7 category_id->[i_category_id];RF8 brand_id->[i_brand_id] ---------PhysicalProject -----------PhysicalOlapScan[item] apply RFs: RF6 RF7 RF8 ---------PhysicalDistribute -----------PhysicalIntersect -------------hashAgg[GLOBAL] ---------------PhysicalDistribute -----------------hashAgg[LOCAL] -------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = iss.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ss_item_sk] -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk] -------------------------PhysicalProject ---------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 -------------------------PhysicalDistribute ---------------------------PhysicalProject -----------------------------filter((d1.d_year <= 2001) and (d1.d_year >= 1999)) -------------------------------PhysicalOlapScan[date_dim] -----------------------PhysicalDistribute -------------------------PhysicalProject ---------------------------PhysicalOlapScan[item] -------------hashAgg[GLOBAL] ---------------PhysicalDistribute -----------------hashAgg[LOCAL] -------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = ics.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[cs_item_sk] -----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[cs_sold_date_sk] -------------------------PhysicalProject ---------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 -------------------------PhysicalDistribute ---------------------------PhysicalProject -----------------------------filter((d2.d_year <= 2001) and (d2.d_year >= 1999)) -------------------------------PhysicalOlapScan[date_dim] -----------------------PhysicalDistribute -------------------------PhysicalProject ---------------------------PhysicalOlapScan[item] -------------hashAgg[GLOBAL] ---------------PhysicalDistribute -----------------hashAgg[LOCAL] -------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = iws.i_item_sk)) otherCondition=() build RFs:RF5 i_item_sk->[ws_item_sk] -----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = d3.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk] -------------------------PhysicalProject ---------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 RF5 -------------------------PhysicalDistribute ---------------------------PhysicalProject -----------------------------filter((d3.d_year <= 2001) and (d3.d_year >= 1999)) -------------------------------PhysicalOlapScan[date_dim] -----------------------PhysicalDistribute -------------------------PhysicalProject ---------------------------PhysicalOlapScan[item] ---PhysicalCteAnchor ( cteId=CTEId#1 ) -----PhysicalCteProducer ( cteId=CTEId#1 ) -------hashAgg[GLOBAL] ---------PhysicalDistribute -----------hashAgg[LOCAL] -------------PhysicalUnion ---------------PhysicalDistribute -----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF9 d_date_sk->[ss_sold_date_sk] ---------------------PhysicalProject -----------------------PhysicalOlapScan[store_sales] apply RFs: RF9 ---------------------PhysicalDistribute -----------------------PhysicalProject -------------------------filter((date_dim.d_year <= 2001) and (date_dim.d_year >= 1999)) ---------------------------PhysicalOlapScan[date_dim] ---------------PhysicalDistribute -----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF10 d_date_sk->[cs_sold_date_sk] ---------------------PhysicalProject -----------------------PhysicalOlapScan[catalog_sales] apply RFs: RF10 ---------------------PhysicalDistribute -----------------------PhysicalProject -------------------------filter((date_dim.d_year <= 2001) and (date_dim.d_year >= 1999)) ---------------------------PhysicalOlapScan[date_dim] ---------------PhysicalDistribute -----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF11 d_date_sk->[ws_sold_date_sk] ---------------------PhysicalProject -----------------------PhysicalOlapScan[web_sales] apply RFs: RF11 ---------------------PhysicalDistribute -----------------------PhysicalProject -------------------------filter((date_dim.d_year <= 2001) and (date_dim.d_year >= 1999)) ---------------------------PhysicalOlapScan[date_dim] -----PhysicalResultSink -------PhysicalTopN[MERGE_SORT] ---------PhysicalDistribute -----------PhysicalTopN[LOCAL_SORT] -------------hashJoin[INNER_JOIN] hashCondition=((ty_brand = ly_brand) and (ty_category = ly_category) and (ty_class = ly_class)) otherCondition=() ---------------PhysicalProject -----------------NestedLoopJoin[INNER_JOIN](cast(ty_sales as DOUBLE) > cast(average_sales as DOUBLE)) -------------------PhysicalProject ---------------------hashAgg[GLOBAL] -----------------------PhysicalDistribute -------------------------hashAgg[LOCAL] ---------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF19 ss_item_sk->[i_item_sk] -------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[item] apply RFs: RF19 -------------------------------PhysicalDistribute ---------------------------------PhysicalProject -----------------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((store_sales.ss_item_sk = cross_items.ss_item_sk)) otherCondition=() build RFs:RF18 ss_item_sk->[ss_item_sk] -------------------------------------PhysicalDistribute ---------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) -------------------------------------PhysicalDistribute ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF17 d_date_sk->[ss_sold_date_sk] -----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF17 -----------------------------------------PhysicalDistribute -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF16 d_week_seq->[d_week_seq] ---------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF16 ---------------------------------------------PhysicalDistribute -----------------------------------------------PhysicalAssertNumRows -------------------------------------------------PhysicalDistribute ---------------------------------------------------PhysicalProject -----------------------------------------------------filter((date_dim.d_dom = 3) and (date_dim.d_moy = 12) and (date_dim.d_year = 2000)) -------------------------------------------------------PhysicalOlapScan[date_dim] -------------------PhysicalDistribute ---------------------PhysicalAssertNumRows -----------------------PhysicalDistribute -------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) ---------------PhysicalProject -----------------NestedLoopJoin[INNER_JOIN](cast(ly_sales as DOUBLE) > cast(average_sales as DOUBLE)) -------------------PhysicalProject ---------------------hashAgg[GLOBAL] -----------------------PhysicalDistribute -------------------------hashAgg[LOCAL] ---------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF15 ss_item_sk->[i_item_sk] -------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[item] apply RFs: RF15 -------------------------------PhysicalDistribute ---------------------------------PhysicalProject -----------------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((store_sales.ss_item_sk = cross_items.ss_item_sk)) otherCondition=() build RFs:RF14 ss_item_sk->[ss_item_sk] -------------------------------------PhysicalDistribute ---------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) -------------------------------------PhysicalDistribute ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF13 d_date_sk->[ss_sold_date_sk] -----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF13 -----------------------------------------PhysicalDistribute -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF12 d_week_seq->[d_week_seq] ---------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF12 ---------------------------------------------PhysicalDistribute -----------------------------------------------PhysicalAssertNumRows -------------------------------------------------PhysicalDistribute ---------------------------------------------------PhysicalProject -----------------------------------------------------filter((date_dim.d_dom = 3) and (date_dim.d_moy = 12) and (date_dim.d_year = 1999)) -------------------------------------------------------PhysicalOlapScan[date_dim] -------------------PhysicalDistribute ---------------------PhysicalAssertNumRows -----------------------PhysicalDistribute -------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) - diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query23.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query23.out index 615fcf40b690b6..d9254bbe921fc2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query23.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query23.out @@ -99,123 +99,3 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#2 ) --- !ds_shape_23_2 -- -PhysicalCteAnchor ( cteId=CTEId#0 ) ---PhysicalCteProducer ( cteId=CTEId#0 ) -----PhysicalProject -------filter((cnt > 4)) ---------hashAgg[GLOBAL] -----------PhysicalDistribute -------------hashAgg[LOCAL] ---------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ss_item_sk] -------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk] -----------------------PhysicalProject -------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 -----------------------PhysicalDistribute -------------------------PhysicalProject ---------------------------filter(d_year IN (2000, 2001, 2002, 2003)) -----------------------------PhysicalOlapScan[date_dim] -------------------PhysicalDistribute ---------------------PhysicalProject -----------------------PhysicalOlapScan[item] ---PhysicalCteAnchor ( cteId=CTEId#2 ) -----PhysicalCteProducer ( cteId=CTEId#2 ) -------PhysicalProject ---------NestedLoopJoin[INNER_JOIN](cast(ssales as DOUBLE) > cast((0.9500 * tpcds_cmax) as DOUBLE)) -----------hashAgg[LOCAL] -------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF4 c_customer_sk->[ss_customer_sk] -----------------PhysicalDistribute -------------------PhysicalProject ---------------------PhysicalOlapScan[store_sales] apply RFs: RF4 -----------------PhysicalDistribute -------------------PhysicalProject ---------------------PhysicalOlapScan[customer] -----------PhysicalDistribute -------------PhysicalProject ---------------hashAgg[GLOBAL] -----------------PhysicalDistribute -------------------hashAgg[LOCAL] ---------------------PhysicalProject -----------------------hashAgg[LOCAL] -------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ss_customer_sk] -----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ss_sold_date_sk] ---------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 RF3 ---------------------------------PhysicalDistribute -----------------------------------PhysicalProject -------------------------------------filter(d_year IN (2000, 2001, 2002, 2003)) ---------------------------------------PhysicalOlapScan[date_dim] -----------------------------PhysicalDistribute -------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[customer] -----PhysicalResultSink -------PhysicalTopN[MERGE_SORT] ---------PhysicalDistribute -----------PhysicalTopN[LOCAL_SORT] -------------PhysicalUnion ---------------PhysicalDistribute -----------------PhysicalTopN[MERGE_SORT] -------------------PhysicalDistribute ---------------------PhysicalTopN[LOCAL_SORT] -----------------------PhysicalProject -------------------------hashAgg[GLOBAL] ---------------------------PhysicalDistribute -----------------------------hashAgg[LOCAL] -------------------------------PhysicalProject ---------------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk)) otherCondition=() -----------------------------------PhysicalDistribute -------------------------------------PhysicalProject ---------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) -----------------------------------PhysicalDistribute -------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF7 c_customer_sk->[cs_bill_customer_sk] ---------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = best_ss_customer.c_customer_sk)) otherCondition=() build RFs:RF6 c_customer_sk->[cs_bill_customer_sk] -----------------------------------------PhysicalDistribute -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF5 d_date_sk->[cs_sold_date_sk] ---------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 RF6 RF7 ---------------------------------------------PhysicalDistribute -----------------------------------------------PhysicalProject -------------------------------------------------filter((date_dim.d_moy = 7) and (date_dim.d_year = 2000)) ---------------------------------------------------PhysicalOlapScan[date_dim] -----------------------------------------PhysicalDistribute -------------------------------------------PhysicalProject ---------------------------------------------PhysicalCteConsumer ( cteId=CTEId#2 ) ---------------------------------------PhysicalDistribute -----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[customer] ---------------PhysicalDistribute -----------------PhysicalTopN[MERGE_SORT] -------------------PhysicalDistribute ---------------------PhysicalTopN[LOCAL_SORT] -----------------------PhysicalProject -------------------------hashAgg[GLOBAL] ---------------------------PhysicalDistribute -----------------------------hashAgg[LOCAL] -------------------------------PhysicalProject ---------------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk)) otherCondition=() -----------------------------------PhysicalDistribute -------------------------------------PhysicalProject ---------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) -----------------------------------PhysicalDistribute -------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF10 ws_bill_customer_sk->[c_customer_sk] ---------------------------------------PhysicalDistribute -----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[customer] apply RFs: RF10 ---------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = best_ss_customer.c_customer_sk)) otherCondition=() build RFs:RF9 c_customer_sk->[ws_bill_customer_sk] -----------------------------------------PhysicalDistribute -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF8 d_date_sk->[ws_sold_date_sk] ---------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF8 RF9 ---------------------------------------------PhysicalDistribute -----------------------------------------------PhysicalProject -------------------------------------------------filter((date_dim.d_moy = 7) and (date_dim.d_year = 2000)) ---------------------------------------------------PhysicalOlapScan[date_dim] -----------------------------------------PhysicalDistribute -------------------------------------------PhysicalProject ---------------------------------------------PhysicalCteConsumer ( cteId=CTEId#2 ) - diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query24.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query24.out index baa59338592972..467ba7d635c681 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query24.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query24.out @@ -57,61 +57,3 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------------PhysicalProject ----------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) --- !ds_shape_24_2 -- -PhysicalCteAnchor ( cteId=CTEId#0 ) ---PhysicalCteProducer ( cteId=CTEId#0 ) -----PhysicalProject -------hashAgg[GLOBAL] ---------PhysicalDistribute -----------hashAgg[LOCAL] -------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number)) otherCondition=() build RFs:RF5 sr_item_sk->[ss_item_sk];RF6 sr_ticket_number->[ss_ticket_number] -----------------PhysicalDistribute -------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF4 i_item_sk->[ss_item_sk] -----------------------hashJoin[INNER_JOIN] hashCondition=((store.s_zip = customer_address.ca_zip) and (store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF2 ca_zip->[s_zip];RF3 c_customer_sk->[ss_customer_sk] -------------------------PhysicalDistribute ---------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ss_store_sk] -------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF3 RF4 RF5 RF6 -------------------------------PhysicalDistribute ---------------------------------PhysicalProject -----------------------------------filter((store.s_market_id = 5)) -------------------------------------PhysicalOlapScan[store] apply RFs: RF2 -------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=(( not (c_birth_country = upper(ca_country)))) build RFs:RF0 ca_address_sk->[c_current_addr_sk] -----------------------------PhysicalDistribute -------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[customer] apply RFs: RF0 -----------------------------PhysicalDistribute -------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[customer_address] -----------------------PhysicalDistribute -------------------------PhysicalProject ---------------------------PhysicalOlapScan[item] -----------------PhysicalDistribute -------------------PhysicalProject ---------------------PhysicalOlapScan[store_returns] ---PhysicalResultSink -----PhysicalQuickSort[MERGE_SORT] -------PhysicalDistribute ---------PhysicalQuickSort[LOCAL_SORT] -----------PhysicalProject -------------NestedLoopJoin[INNER_JOIN](cast(paid as DOUBLE) > cast((0.05 * avg(cast(netpaid as DECIMALV3(38, 4)))) as DOUBLE)) ---------------hashAgg[GLOBAL] -----------------PhysicalDistribute -------------------hashAgg[LOCAL] ---------------------PhysicalDistribute -----------------------PhysicalProject -------------------------filter((ssales.i_color = 'seashell')) ---------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ---------------PhysicalDistribute -----------------PhysicalProject -------------------hashAgg[GLOBAL] ---------------------PhysicalDistribute -----------------------hashAgg[LOCAL] -------------------------PhysicalDistribute ---------------------------PhysicalProject -----------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) - diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query39.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query39.out index c9394b9b60fe65..76c19f37142715 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query39.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query39.out @@ -38,42 +38,3 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------------------filter((inv2.d_moy = 2)) --------------------PhysicalCteConsumer ( cteId=CTEId#0 ) --- !ds_shape_39_2 -- -PhysicalCteAnchor ( cteId=CTEId#0 ) ---PhysicalCteProducer ( cteId=CTEId#0 ) -----PhysicalProject -------filter((if((mean = 0), 0, (stdev / mean)) > 1)) ---------hashAgg[GLOBAL] -----------PhysicalDistribute -------------hashAgg[LOCAL] ---------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[inv_item_sk] -------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF1 w_warehouse_sk->[inv_warehouse_sk] -----------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[inv_date_sk] -------------------------PhysicalOlapScan[inventory] apply RFs: RF0 RF1 RF2 -------------------------PhysicalDistribute ---------------------------PhysicalProject -----------------------------filter((date_dim.d_year = 2000) and d_moy IN (1, 2)) -------------------------------PhysicalOlapScan[date_dim] -----------------------PhysicalDistribute -------------------------PhysicalProject ---------------------------PhysicalOlapScan[warehouse] -------------------PhysicalDistribute ---------------------PhysicalProject -----------------------PhysicalOlapScan[item] ---PhysicalResultSink -----PhysicalQuickSort[MERGE_SORT] -------PhysicalDistribute ---------PhysicalQuickSort[LOCAL_SORT] -----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((inv1.i_item_sk = inv2.i_item_sk) and (inv1.w_warehouse_sk = inv2.w_warehouse_sk)) otherCondition=() ---------------PhysicalDistribute -----------------PhysicalProject -------------------filter((inv1.cov > 1.5) and (inv1.d_moy = 1)) ---------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ---------------PhysicalDistribute -----------------PhysicalProject -------------------filter((inv2.d_moy = 2)) ---------------------PhysicalCteConsumer ( cteId=CTEId#0 ) - diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query95.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query95.out index 2344273a8856dd..c82d2ae58d3489 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query95.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query95.out @@ -22,14 +22,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalProject ----------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) otherCondition=() ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF5 wr_order_number->[ws_order_number];RF7 wr_order_number->[ws_order_number,ws_order_number] +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF5 wr_order_number->[ws_order_number];RF6 wr_order_number->[ws_order_number,ws_order_number] ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalOlapScan[web_returns] -------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 ws_order_number->[ws_order_number];RF6 ws_order_number->[ws_order_number,ws_order_number] +------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 ws_order_number->[ws_order_number];RF7 ws_order_number->[ws_order_number,ws_order_number] --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query95.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query95.out index 0d457d1bc75e16..226b8c9767817e 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query95.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query95.out @@ -22,14 +22,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalProject ----------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) otherCondition=() ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF5 wr_order_number->[ws_order_number];RF7 wr_order_number->[ws_order_number,ws_order_number] +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF5 wr_order_number->[ws_order_number];RF6 wr_order_number->[ws_order_number,ws_order_number] ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalOlapScan[web_returns] -------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 ws_order_number->[ws_order_number];RF6 ws_order_number->[ws_order_number,ws_order_number] +------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 ws_order_number->[ws_order_number];RF7 ws_order_number->[ws_order_number,ws_order_number] --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query95.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query95.out index 0d457d1bc75e16..226b8c9767817e 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query95.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query95.out @@ -22,14 +22,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalProject ----------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) otherCondition=() ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF5 wr_order_number->[ws_order_number];RF7 wr_order_number->[ws_order_number,ws_order_number] +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF5 wr_order_number->[ws_order_number];RF6 wr_order_number->[ws_order_number,ws_order_number] ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalOlapScan[web_returns] -------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 ws_order_number->[ws_order_number];RF6 ws_order_number->[ws_order_number,ws_order_number] +------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 ws_order_number->[ws_order_number];RF7 ws_order_number->[ws_order_number,ws_order_number] --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query72.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query72.out index c5396c1a27dfc6..cb73cf02330945 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query72.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query72.out @@ -8,57 +8,58 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((warehouse.w_warehouse_sk = inventory.inv_warehouse_sk)) otherCondition=() -------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = inventory.inv_item_sk) and (inventory.inv_date_sk = d2.d_date_sk)) otherCondition=((inventory.inv_quantity_on_hand < catalog_sales.cs_quantity)) build RFs:RF8 d_date_sk->[inv_date_sk];RF9 cs_item_sk->[inv_item_sk] -----------------------PhysicalDistribute -------------------------PhysicalOlapScan[inventory] apply RFs: RF8 RF9 -----------------------PhysicalDistribute +----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((catalog_returns.cr_item_sk = catalog_sales.cs_item_sk) and (catalog_returns.cr_order_number = catalog_sales.cs_order_number)) otherCondition=() +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------hashJoin[INNER_JOIN] hashCondition=((warehouse.w_warehouse_sk = inventory.inv_warehouse_sk)) otherCondition=() ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_week_seq = d2.d_week_seq)) otherCondition=() -----------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_returns.cr_item_sk = catalog_sales.cs_item_sk) and (catalog_returns.cr_order_number = catalog_sales.cs_order_number)) otherCondition=() build RFs:RF5 cs_item_sk->[cr_item_sk];RF6 cs_order_number->[cr_order_number] -------------------------------PhysicalDistribute ---------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF5 RF6 -------------------------------PhysicalDistribute ---------------------------------PhysicalProject -----------------------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk)) otherCondition=() -------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk)) otherCondition=() -----------------------------------------PhysicalDistribute -------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_date_sk = d3.d_date_sk)) otherCondition=((d3.d_date > cast((cast(d_date as BIGINT) + 5) as DATEV2))) -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF2 cd_demo_sk->[cs_bill_cdemo_sk] -------------------------------------------------PhysicalDistribute ---------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] -----------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF0 hd_demo_sk->[cs_bill_hdemo_sk] -------------------------------------------------------PhysicalProject ---------------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = inventory.inv_item_sk) and (inventory.inv_date_sk = d2.d_date_sk)) otherCondition=((inventory.inv_quantity_on_hand < catalog_sales.cs_quantity)) build RFs:RF6 d_date_sk->[inv_date_sk];RF7 cs_item_sk->[inv_item_sk] +----------------------------PhysicalDistribute +------------------------------PhysicalOlapScan[inventory] apply RFs: RF6 RF7 +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_week_seq = d2.d_week_seq)) otherCondition=() +----------------------------------PhysicalProject +------------------------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk)) otherCondition=() +--------------------------------------PhysicalProject +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk)) otherCondition=() +------------------------------------------PhysicalDistribute +--------------------------------------------PhysicalProject +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_date_sk = d3.d_date_sk)) otherCondition=((d3.d_date > days_add(d_date, INTERVAL 5 DAY))) +------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF2 cd_demo_sk->[cs_bill_cdemo_sk] +--------------------------------------------------PhysicalDistribute +----------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] +------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF0 hd_demo_sk->[cs_bill_hdemo_sk] +--------------------------------------------------------PhysicalProject +----------------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 +--------------------------------------------------------PhysicalDistribute +----------------------------------------------------------PhysicalProject +------------------------------------------------------------filter((household_demographics.hd_buy_potential = '501-1000')) +--------------------------------------------------------------PhysicalOlapScan[household_demographics] ------------------------------------------------------PhysicalDistribute --------------------------------------------------------PhysicalProject -----------------------------------------------------------filter((household_demographics.hd_buy_potential = '501-1000')) -------------------------------------------------------------PhysicalOlapScan[household_demographics] -----------------------------------------------------PhysicalDistribute -------------------------------------------------------PhysicalProject ---------------------------------------------------------filter((d1.d_year = 2002)) -----------------------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF7 +----------------------------------------------------------filter((d1.d_year = 2002)) +------------------------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF5 +--------------------------------------------------PhysicalDistribute +----------------------------------------------------PhysicalProject +------------------------------------------------------filter((customer_demographics.cd_marital_status = 'W')) +--------------------------------------------------------PhysicalOlapScan[customer_demographics] ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject -----------------------------------------------------filter((customer_demographics.cd_marital_status = 'W')) -------------------------------------------------------PhysicalOlapScan[customer_demographics] -----------------------------------------------PhysicalDistribute -------------------------------------------------PhysicalProject ---------------------------------------------------PhysicalOlapScan[date_dim] -----------------------------------------PhysicalDistribute -------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[item] -------------------------------------PhysicalDistribute ---------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[promotion] -----------------------------PhysicalDistribute -------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[date_dim] +----------------------------------------------------PhysicalOlapScan[date_dim] +------------------------------------------PhysicalDistribute +--------------------------------------------PhysicalProject +----------------------------------------------PhysicalOlapScan[item] +--------------------------------------PhysicalDistribute +----------------------------------------PhysicalProject +------------------------------------------PhysicalOlapScan[promotion] +----------------------------------PhysicalDistribute +------------------------------------PhysicalProject +--------------------------------------PhysicalOlapScan[date_dim] +------------------------PhysicalDistribute +--------------------------PhysicalProject +----------------------------PhysicalOlapScan[warehouse] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------PhysicalOlapScan[warehouse] +----------------------PhysicalOlapScan[catalog_returns] diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query95.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query95.out index 21106e7004903c..4fcf27b7e65999 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query95.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query95.out @@ -22,14 +22,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalProject ----------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) otherCondition=() ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF5 wr_order_number->[ws_order_number];RF7 wr_order_number->[ws_order_number,ws_order_number] +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF5 wr_order_number->[ws_order_number];RF6 wr_order_number->[ws_order_number,ws_order_number] ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalOlapScan[web_returns] -------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 ws_order_number->[ws_order_number];RF6 ws_order_number->[ws_order_number,ws_order_number] +------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 ws_order_number->[ws_order_number];RF7 ws_order_number->[ws_order_number,ws_order_number] --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out index 55d5d7bb227970..e9370fe109e460 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out @@ -8,57 +8,58 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((warehouse.w_warehouse_sk = inventory.inv_warehouse_sk)) otherCondition=() build RFs:RF10 w_warehouse_sk->[inv_warehouse_sk] -------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = inventory.inv_item_sk) and (inventory.inv_date_sk = d2.d_date_sk)) otherCondition=((inventory.inv_quantity_on_hand < catalog_sales.cs_quantity)) build RFs:RF8 d_date_sk->[inv_date_sk];RF9 cs_item_sk->[inv_item_sk] -----------------------PhysicalDistribute -------------------------PhysicalOlapScan[inventory] apply RFs: RF8 RF9 RF10 -----------------------PhysicalDistribute +----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((catalog_returns.cr_item_sk = catalog_sales.cs_item_sk) and (catalog_returns.cr_order_number = catalog_sales.cs_order_number)) otherCondition=() +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------hashJoin[INNER_JOIN] hashCondition=((warehouse.w_warehouse_sk = inventory.inv_warehouse_sk)) otherCondition=() build RFs:RF8 w_warehouse_sk->[inv_warehouse_sk] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_week_seq = d2.d_week_seq)) otherCondition=() build RFs:RF7 d_week_seq->[d_week_seq] -----------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_returns.cr_item_sk = catalog_sales.cs_item_sk) and (catalog_returns.cr_order_number = catalog_sales.cs_order_number)) otherCondition=() build RFs:RF5 cs_item_sk->[cr_item_sk];RF6 cs_order_number->[cr_order_number] -------------------------------PhysicalDistribute ---------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF5 RF6 -------------------------------PhysicalDistribute ---------------------------------PhysicalProject -----------------------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk)) otherCondition=() -------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF4 i_item_sk->[cs_item_sk] -----------------------------------------PhysicalDistribute -------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_date_sk = d3.d_date_sk)) otherCondition=((d3.d_date > cast((cast(d_date as BIGINT) + 5) as DATEV2))) build RFs:RF3 d_date_sk->[cs_ship_date_sk] -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF2 cd_demo_sk->[cs_bill_cdemo_sk] -------------------------------------------------PhysicalDistribute ---------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] -----------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF0 hd_demo_sk->[cs_bill_hdemo_sk] -------------------------------------------------------PhysicalProject ---------------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 RF3 RF4 +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = inventory.inv_item_sk) and (inventory.inv_date_sk = d2.d_date_sk)) otherCondition=((inventory.inv_quantity_on_hand < catalog_sales.cs_quantity)) build RFs:RF6 d_date_sk->[inv_date_sk];RF7 cs_item_sk->[inv_item_sk] +----------------------------PhysicalDistribute +------------------------------PhysicalOlapScan[inventory] apply RFs: RF6 RF7 RF8 +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_week_seq = d2.d_week_seq)) otherCondition=() build RFs:RF5 d_week_seq->[d_week_seq] +----------------------------------PhysicalProject +------------------------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk)) otherCondition=() +--------------------------------------PhysicalProject +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF4 i_item_sk->[cs_item_sk] +------------------------------------------PhysicalDistribute +--------------------------------------------PhysicalProject +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_date_sk = d3.d_date_sk)) otherCondition=((d3.d_date > days_add(d_date, INTERVAL 5 DAY))) build RFs:RF3 d_date_sk->[cs_ship_date_sk] +------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF2 cd_demo_sk->[cs_bill_cdemo_sk] +--------------------------------------------------PhysicalDistribute +----------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] +------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF0 hd_demo_sk->[cs_bill_hdemo_sk] +--------------------------------------------------------PhysicalProject +----------------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 RF3 RF4 +--------------------------------------------------------PhysicalDistribute +----------------------------------------------------------PhysicalProject +------------------------------------------------------------filter((household_demographics.hd_buy_potential = '501-1000')) +--------------------------------------------------------------PhysicalOlapScan[household_demographics] ------------------------------------------------------PhysicalDistribute --------------------------------------------------------PhysicalProject -----------------------------------------------------------filter((household_demographics.hd_buy_potential = '501-1000')) -------------------------------------------------------------PhysicalOlapScan[household_demographics] -----------------------------------------------------PhysicalDistribute -------------------------------------------------------PhysicalProject ---------------------------------------------------------filter((d1.d_year = 2002)) -----------------------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF7 +----------------------------------------------------------filter((d1.d_year = 2002)) +------------------------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF5 +--------------------------------------------------PhysicalDistribute +----------------------------------------------------PhysicalProject +------------------------------------------------------filter((customer_demographics.cd_marital_status = 'W')) +--------------------------------------------------------PhysicalOlapScan[customer_demographics] ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject -----------------------------------------------------filter((customer_demographics.cd_marital_status = 'W')) -------------------------------------------------------PhysicalOlapScan[customer_demographics] -----------------------------------------------PhysicalDistribute -------------------------------------------------PhysicalProject ---------------------------------------------------PhysicalOlapScan[date_dim] -----------------------------------------PhysicalDistribute -------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[item] -------------------------------------PhysicalDistribute ---------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[promotion] -----------------------------PhysicalDistribute -------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[date_dim] +----------------------------------------------------PhysicalOlapScan[date_dim] +------------------------------------------PhysicalDistribute +--------------------------------------------PhysicalProject +----------------------------------------------PhysicalOlapScan[item] +--------------------------------------PhysicalDistribute +----------------------------------------PhysicalProject +------------------------------------------PhysicalOlapScan[promotion] +----------------------------------PhysicalDistribute +------------------------------------PhysicalProject +--------------------------------------PhysicalOlapScan[date_dim] +------------------------PhysicalDistribute +--------------------------PhysicalProject +----------------------------PhysicalOlapScan[warehouse] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------PhysicalOlapScan[warehouse] +----------------------PhysicalOlapScan[catalog_returns] diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query95.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query95.out index 21106e7004903c..4fcf27b7e65999 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query95.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query95.out @@ -22,14 +22,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalProject ----------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) otherCondition=() ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF5 wr_order_number->[ws_order_number];RF7 wr_order_number->[ws_order_number,ws_order_number] +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF5 wr_order_number->[ws_order_number];RF6 wr_order_number->[ws_order_number,ws_order_number] ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalOlapScan[web_returns] -------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 ws_order_number->[ws_order_number];RF6 ws_order_number->[ws_order_number,ws_order_number] +------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 ws_order_number->[ws_order_number];RF7 ws_order_number->[ws_order_number,ws_order_number] --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/ddl/gen_shape.py b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/ddl/gen_shape.py index a8ccd9d4e7416d..8317bd1859f261 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/ddl/gen_shape.py +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/ddl/gen_shape.py @@ -20,7 +20,7 @@ for i in range(1,100): with open('../../../../tools/tpcds-tools/queries/sf1000/query'+str(i)+'.sql', 'r') as fi: casei = tmpl.replace('{--}', str(i)) - casei = casei.replace('{query}', fi.read()) + casei = casei.replace('{query}', fi.read().split(";")[0]) with open('../shape/query'+str(i)+'.groovy', 'w') as out: out.write(casei) \ No newline at end of file diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/ddl/shape.tmpl b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/ddl/shape.tmpl index 8f1d4bf10486f3..a4bd931311e547 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/ddl/shape.tmpl +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/ddl/shape.tmpl @@ -27,9 +27,10 @@ suite("query{--}") { sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """{query}""" qt_ds_shape_{--} ''' explain shape plan {query} diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query1.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query1.groovy index 218f0284e43238..f9e6a330af6905 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query1.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query1.groovy @@ -24,13 +24,34 @@ suite("query1") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with customer_total_return as +(select sr_customer_sk as ctr_customer_sk +,sr_store_sk as ctr_store_sk +,sum(SR_FEE) as ctr_total_return +from store_returns +,date_dim +where sr_returned_date_sk = d_date_sk +and d_year =2000 +group by sr_customer_sk +,sr_store_sk) + select c_customer_id +from customer_total_return ctr1 +,store +,customer +where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 +from customer_total_return ctr2 +where ctr1.ctr_store_sk = ctr2.ctr_store_sk) +and s_store_sk = ctr1.ctr_store_sk +and s_state = 'TN' +and ctr1.ctr_customer_sk = c_customer_sk +order by c_customer_id +limit 100""" qt_ds_shape_1 ''' explain shape plan with customer_total_return as @@ -54,7 +75,6 @@ and s_store_sk = ctr1.ctr_store_sk and s_state = 'TN' and ctr1.ctr_customer_sk = c_customer_sk order by c_customer_id -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query10.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query10.groovy index 0ac5156e8acdf3..accc3fe027f109 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query10.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query10.groovy @@ -24,13 +24,68 @@ suite("query10") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + cd_gender, + cd_marital_status, + cd_education_status, + count(*) cnt1, + cd_purchase_estimate, + count(*) cnt2, + cd_credit_rating, + count(*) cnt3, + cd_dep_count, + count(*) cnt4, + cd_dep_employed_count, + count(*) cnt5, + cd_dep_college_count, + count(*) cnt6 + from + customer c,customer_address ca,customer_demographics + where + c.c_current_addr_sk = ca.ca_address_sk and + ca_county in ('Fairfield County','Campbell County','Washtenaw County','Escambia County','Cleburne County') and + cd_demo_sk = c.c_current_cdemo_sk and + exists (select * + from store_sales,date_dim + where c.c_customer_sk = ss_customer_sk and + ss_sold_date_sk = d_date_sk and + d_year = 2001 and + d_moy between 3 and 3+3) and + (exists (select * + from web_sales,date_dim + where c.c_customer_sk = ws_bill_customer_sk and + ws_sold_date_sk = d_date_sk and + d_year = 2001 and + d_moy between 3 ANd 3+3) or + exists (select * + from catalog_sales,date_dim + where c.c_customer_sk = cs_ship_customer_sk and + cs_sold_date_sk = d_date_sk and + d_year = 2001 and + d_moy between 3 and 3+3)) + group by cd_gender, + cd_marital_status, + cd_education_status, + cd_purchase_estimate, + cd_credit_rating, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count + order by cd_gender, + cd_marital_status, + cd_education_status, + cd_purchase_estimate, + cd_credit_rating, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count +limit 100""" qt_ds_shape_10 ''' explain shape plan select @@ -88,7 +143,6 @@ sql 'set enable_runtime_filter_prune=false' cd_dep_count, cd_dep_employed_count, cd_dep_college_count -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query11.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query11.groovy index 261535ecd05213..1696ab1f54c0b1 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query11.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query11.groovy @@ -24,13 +24,90 @@ suite("query11") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag customer_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ss_ext_list_price-ss_ext_discount_amt) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag customer_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ws_ext_list_price-ws_ext_discount_amt) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + ) + select + t_s_secyear.customer_id + ,t_s_secyear.customer_first_name + ,t_s_secyear.customer_last_name + ,t_s_secyear.customer_email_address + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.dyear = 1998 + and t_s_secyear.dyear = 1998+1 + and t_w_firstyear.dyear = 1998 + and t_w_secyear.dyear = 1998+1 + and t_s_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else 0.0 end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else 0.0 end + order by t_s_secyear.customer_id + ,t_s_secyear.customer_first_name + ,t_s_secyear.customer_last_name + ,t_s_secyear.customer_email_address +limit 100""" qt_ds_shape_11 ''' explain shape plan with year_total as ( @@ -110,7 +187,6 @@ sql 'set enable_runtime_filter_prune=false' ,t_s_secyear.customer_first_name ,t_s_secyear.customer_last_name ,t_s_secyear.customer_email_address -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query12.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query12.groovy index 095a061f6054b2..3e38e7b31eb346 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query12.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query12.groovy @@ -24,13 +24,43 @@ suite("query12") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price + ,sum(ws_ext_sales_price) as itemrevenue + ,sum(ws_ext_sales_price)*100/sum(sum(ws_ext_sales_price)) over + (partition by i_class) as revenueratio +from + web_sales + ,item + ,date_dim +where + ws_item_sk = i_item_sk + and i_category in ('Men', 'Books', 'Electronics') + and ws_sold_date_sk = d_date_sk + and d_date between cast('2001-06-15' as date) + and (cast('2001-06-15' as date) + interval 30 day) +group by + i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price +order by + i_category + ,i_class + ,i_item_id + ,i_item_desc + ,revenueratio +limit 100""" qt_ds_shape_12 ''' explain shape plan select i_item_id @@ -63,7 +93,6 @@ order by ,i_item_id ,i_item_desc ,revenueratio -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query13.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query13.groovy index a0f3cc5775dc61..f4cd48bd0b29a6 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query13.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query13.groovy @@ -24,13 +24,61 @@ suite("query13") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select avg(ss_quantity) + ,avg(ss_ext_sales_price) + ,avg(ss_ext_wholesale_cost) + ,sum(ss_ext_wholesale_cost) + from store_sales + ,store + ,customer_demographics + ,household_demographics + ,customer_address + ,date_dim + where s_store_sk = ss_store_sk + and ss_sold_date_sk = d_date_sk and d_year = 2001 + and((ss_hdemo_sk=hd_demo_sk + and cd_demo_sk = ss_cdemo_sk + and cd_marital_status = 'M' + and cd_education_status = 'College' + and ss_sales_price between 100.00 and 150.00 + and hd_dep_count = 3 + )or + (ss_hdemo_sk=hd_demo_sk + and cd_demo_sk = ss_cdemo_sk + and cd_marital_status = 'D' + and cd_education_status = 'Primary' + and ss_sales_price between 50.00 and 100.00 + and hd_dep_count = 1 + ) or + (ss_hdemo_sk=hd_demo_sk + and cd_demo_sk = ss_cdemo_sk + and cd_marital_status = 'W' + and cd_education_status = '2 yr Degree' + and ss_sales_price between 150.00 and 200.00 + and hd_dep_count = 1 + )) + and((ss_addr_sk = ca_address_sk + and ca_country = 'United States' + and ca_state in ('IL', 'TN', 'TX') + and ss_net_profit between 100 and 200 + ) or + (ss_addr_sk = ca_address_sk + and ca_country = 'United States' + and ca_state in ('WY', 'OH', 'ID') + and ss_net_profit between 150 and 300 + ) or + (ss_addr_sk = ca_address_sk + and ca_country = 'United States' + and ca_state in ('MS', 'SC', 'IA') + and ss_net_profit between 50 and 250 + )) +""" qt_ds_shape_13 ''' explain shape plan select avg(ss_quantity) @@ -81,7 +129,6 @@ sql 'set enable_runtime_filter_prune=false' and ca_state in ('MS', 'SC', 'IA') and ss_net_profit between 50 and 250 )) -; ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query14.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query14.groovy index 95608372006b86..ea76870e685cd6 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query14.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query14.groovy @@ -24,16 +24,13 @@ suite("query14") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - - qt_ds_shape_14 ''' - explain shape plan - with cross_items as + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with cross_items as (select i_item_sk ss_item_sk from item, (select iss.i_brand_id brand_id @@ -133,11 +130,10 @@ avg_sales as ) y group by rollup (channel, i_brand_id,i_class_id,i_category_id) order by channel,i_brand_id,i_class_id,i_category_id - limit 100; - ''' - qt_ds_shape_14_2 ''' + limit 100""" + qt_ds_shape_14 ''' explain shape plan -with cross_items as + with cross_items as (select i_item_sk ss_item_sk from item, (select iss.i_brand_id brand_id @@ -149,7 +145,7 @@ with cross_items as where ss_item_sk = iss.i_item_sk and ss_sold_date_sk = d1.d_date_sk and d1.d_year between 1999 AND 1999 + 2 - intersect + intersect select ics.i_brand_id ,ics.i_class_id ,ics.i_category_id @@ -168,26 +164,26 @@ with cross_items as ,date_dim d3 where ws_item_sk = iws.i_item_sk and ws_sold_date_sk = d3.d_date_sk - and d3.d_year between 1999 AND 1999 + 2) x - where i_brand_id = brand_id + and d3.d_year between 1999 AND 1999 + 2) + t where i_brand_id = brand_id and i_class_id = class_id and i_category_id = category_id ), - avg_sales as -(select avg(quantity*list_price) average_sales +avg_sales as + (select avg(quantity*list_price) average_sales from (select ss_quantity quantity ,ss_list_price list_price from store_sales ,date_dim where ss_sold_date_sk = d_date_sk and d_year between 1999 and 1999 + 2 - union all - select cs_quantity quantity + union all + select cs_quantity quantity ,cs_list_price list_price from catalog_sales ,date_dim where cs_sold_date_sk = d_date_sk - and d_year between 1999 and 1999 + 2 + and d_year between 1999 and 1999 + 2 union all select ws_quantity quantity ,ws_list_price list_price @@ -195,54 +191,48 @@ with cross_items as ,date_dim where ws_sold_date_sk = d_date_sk and d_year between 1999 and 1999 + 2) x) - select this_year.channel ty_channel - ,this_year.i_brand_id ty_brand - ,this_year.i_class_id ty_class - ,this_year.i_category_id ty_category - ,this_year.sales ty_sales - ,this_year.number_sales ty_number_sales - ,last_year.channel ly_channel - ,last_year.i_brand_id ly_brand - ,last_year.i_class_id ly_class - ,last_year.i_category_id ly_category - ,last_year.sales ly_sales - ,last_year.number_sales ly_number_sales - from - (select 'store' channel, i_brand_id,i_class_id,i_category_id - ,sum(ss_quantity*ss_list_price) sales, count(*) number_sales - from store_sales - ,item - ,date_dim - where ss_item_sk in (select ss_item_sk from cross_items) - and ss_item_sk = i_item_sk - and ss_sold_date_sk = d_date_sk - and d_week_seq = (select d_week_seq - from date_dim - where d_year = 1999 + 1 - and d_moy = 12 - and d_dom = 3) - group by i_brand_id,i_class_id,i_category_id - having sum(ss_quantity*ss_list_price) > (select average_sales from avg_sales)) this_year, - (select 'store' channel, i_brand_id,i_class_id - ,i_category_id, sum(ss_quantity*ss_list_price) sales, count(*) number_sales - from store_sales - ,item - ,date_dim - where ss_item_sk in (select ss_item_sk from cross_items) - and ss_item_sk = i_item_sk - and ss_sold_date_sk = d_date_sk - and d_week_seq = (select d_week_seq - from date_dim - where d_year = 1999 - and d_moy = 12 - and d_dom = 3) - group by i_brand_id,i_class_id,i_category_id - having sum(ss_quantity*ss_list_price) > (select average_sales from avg_sales)) last_year - where this_year.i_brand_id= last_year.i_brand_id - and this_year.i_class_id = last_year.i_class_id - and this_year.i_category_id = last_year.i_category_id - order by this_year.channel, this_year.i_brand_id, this_year.i_class_id, this_year.i_category_id - limit 100; - + select channel, i_brand_id,i_class_id,i_category_id,sum(sales), sum(number_sales) + from( + select 'store' channel, i_brand_id,i_class_id + ,i_category_id,sum(ss_quantity*ss_list_price) sales + , count(*) number_sales + from store_sales + ,item + ,date_dim + where ss_item_sk in (select ss_item_sk from cross_items) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 1999+2 + and d_moy = 11 + group by i_brand_id,i_class_id,i_category_id + having sum(ss_quantity*ss_list_price) > (select average_sales from avg_sales) + union all + select 'catalog' channel, i_brand_id,i_class_id,i_category_id, sum(cs_quantity*cs_list_price) sales, count(*) number_sales + from catalog_sales + ,item + ,date_dim + where cs_item_sk in (select ss_item_sk from cross_items) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 1999+2 + and d_moy = 11 + group by i_brand_id,i_class_id,i_category_id + having sum(cs_quantity*cs_list_price) > (select average_sales from avg_sales) + union all + select 'web' channel, i_brand_id,i_class_id,i_category_id, sum(ws_quantity*ws_list_price) sales , count(*) number_sales + from web_sales + ,item + ,date_dim + where ws_item_sk in (select ss_item_sk from cross_items) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 1999+2 + and d_moy = 11 + group by i_brand_id,i_class_id,i_category_id + having sum(ws_quantity*ws_list_price) > (select average_sales from avg_sales) + ) y + group by rollup (channel, i_brand_id,i_class_id,i_category_id) + order by channel,i_brand_id,i_class_id,i_category_id + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query15.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query15.groovy index 169e0c441926dc..d0cf611893591b 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query15.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query15.groovy @@ -24,13 +24,29 @@ suite("query15") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select ca_zip + ,sum(cs_sales_price) + from catalog_sales + ,customer + ,customer_address + ,date_dim + where cs_bill_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', + '85392', '85460', '80348', '81792') + or ca_state in ('CA','WA','GA') + or cs_sales_price > 500) + and cs_sold_date_sk = d_date_sk + and d_qoy = 2 and d_year = 2001 + group by ca_zip + order by ca_zip + limit 100""" qt_ds_shape_15 ''' explain shape plan select ca_zip @@ -49,7 +65,6 @@ sql 'set enable_runtime_filter_prune=false' and d_qoy = 2 and d_year = 2001 group by ca_zip order by ca_zip - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query16.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query16.groovy index b095c295d34b17..a4af3ebcf3d511 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query16.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query16.groovy @@ -24,13 +24,40 @@ suite("query16") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + count(distinct cs_order_number) as "order count" + ,sum(cs_ext_ship_cost) as "total shipping cost" + ,sum(cs_net_profit) as "total net profit" +from + catalog_sales cs1 + ,date_dim + ,customer_address + ,call_center +where + d_date between '2002-4-01' and + (cast('2002-4-01' as date) + interval 60 day) +and cs1.cs_ship_date_sk = d_date_sk +and cs1.cs_ship_addr_sk = ca_address_sk +and ca_state = 'PA' +and cs1.cs_call_center_sk = cc_call_center_sk +and cc_county in ('Williamson County','Williamson County','Williamson County','Williamson County', + 'Williamson County' +) +and exists (select * + from catalog_sales cs2 + where cs1.cs_order_number = cs2.cs_order_number + and cs1.cs_warehouse_sk <> cs2.cs_warehouse_sk) +and not exists(select * + from catalog_returns cr1 + where cs1.cs_order_number = cr1.cr_order_number) +order by count(distinct cs_order_number) +limit 100""" qt_ds_shape_16 ''' explain shape plan select @@ -60,7 +87,6 @@ and not exists(select * from catalog_returns cr1 where cs1.cs_order_number = cr1.cr_order_number) order by count(distinct cs_order_number) -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query17.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query17.groovy index bc52a3b56cc855..a3457b50200426 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query17.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query17.groovy @@ -24,13 +24,54 @@ suite("query17") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_item_id + ,i_item_desc + ,s_state + ,count(ss_quantity) as store_sales_quantitycount + ,avg(ss_quantity) as store_sales_quantityave + ,stddev_samp(ss_quantity) as store_sales_quantitystdev + ,stddev_samp(ss_quantity)/avg(ss_quantity) as store_sales_quantitycov + ,count(sr_return_quantity) as store_returns_quantitycount + ,avg(sr_return_quantity) as store_returns_quantityave + ,stddev_samp(sr_return_quantity) as store_returns_quantitystdev + ,stddev_samp(sr_return_quantity)/avg(sr_return_quantity) as store_returns_quantitycov + ,count(cs_quantity) as catalog_sales_quantitycount ,avg(cs_quantity) as catalog_sales_quantityave + ,stddev_samp(cs_quantity) as catalog_sales_quantitystdev + ,stddev_samp(cs_quantity)/avg(cs_quantity) as catalog_sales_quantitycov + from store_sales + ,store_returns + ,catalog_sales + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,item + where d1.d_quarter_name = '2001Q1' + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and ss_customer_sk = sr_customer_sk + and ss_item_sk = sr_item_sk + and ss_ticket_number = sr_ticket_number + and sr_returned_date_sk = d2.d_date_sk + and d2.d_quarter_name in ('2001Q1','2001Q2','2001Q3') + and sr_customer_sk = cs_bill_customer_sk + and sr_item_sk = cs_item_sk + and cs_sold_date_sk = d3.d_date_sk + and d3.d_quarter_name in ('2001Q1','2001Q2','2001Q3') + group by i_item_id + ,i_item_desc + ,s_state + order by i_item_id + ,i_item_desc + ,s_state +limit 100""" qt_ds_shape_17 ''' explain shape plan select i_item_id @@ -74,7 +115,6 @@ sql 'set enable_runtime_filter_prune=false' order by i_item_id ,i_item_desc ,s_state -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query18.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query18.groovy index 8cf276525c7d85..860c3ff3a59c3a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query18.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query18.groovy @@ -24,13 +24,43 @@ suite("query18") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_item_id, + ca_country, + ca_state, + ca_county, + avg( cast(cs_quantity as decimal(12,2))) agg1, + avg( cast(cs_list_price as decimal(12,2))) agg2, + avg( cast(cs_coupon_amt as decimal(12,2))) agg3, + avg( cast(cs_sales_price as decimal(12,2))) agg4, + avg( cast(cs_net_profit as decimal(12,2))) agg5, + avg( cast(c_birth_year as decimal(12,2))) agg6, + avg( cast(cd1.cd_dep_count as decimal(12,2))) agg7 + from catalog_sales, customer_demographics cd1, + customer_demographics cd2, customer, customer_address, date_dim, item + where cs_sold_date_sk = d_date_sk and + cs_item_sk = i_item_sk and + cs_bill_cdemo_sk = cd1.cd_demo_sk and + cs_bill_customer_sk = c_customer_sk and + cd1.cd_gender = 'F' and + cd1.cd_education_status = 'Primary' and + c_current_cdemo_sk = cd2.cd_demo_sk and + c_current_addr_sk = ca_address_sk and + c_birth_month in (1,3,7,11,10,4) and + d_year = 2001 and + ca_state in ('AL','MO','TN' + ,'GA','MT','IN','CA') + group by rollup (i_item_id, ca_country, ca_state, ca_county) + order by ca_country, + ca_state, + ca_county, + i_item_id + limit 100""" qt_ds_shape_18 ''' explain shape plan select i_item_id, @@ -63,7 +93,6 @@ sql 'set enable_runtime_filter_prune=false' ca_state, ca_county, i_item_id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query19.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query19.groovy index ab1be4f765936e..a74d0593dec547 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query19.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query19.groovy @@ -24,13 +24,34 @@ suite("query19") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_brand_id brand_id, i_brand brand, i_manufact_id, i_manufact, + sum(ss_ext_sales_price) ext_price + from date_dim, store_sales, item,customer,customer_address,store + where d_date_sk = ss_sold_date_sk + and ss_item_sk = i_item_sk + and i_manager_id=14 + and d_moy=11 + and d_year=2002 + and ss_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and substr(ca_zip,1,5) <> substr(s_zip,1,5) + and ss_store_sk = s_store_sk + group by i_brand + ,i_brand_id + ,i_manufact_id + ,i_manufact + order by ext_price desc + ,i_brand + ,i_brand_id + ,i_manufact_id + ,i_manufact +limit 100 """ qt_ds_shape_19 ''' explain shape plan select i_brand_id brand_id, i_brand brand, i_manufact_id, i_manufact, @@ -54,7 +75,6 @@ sql 'set enable_runtime_filter_prune=false' ,i_brand_id ,i_manufact_id ,i_manufact -limit 100 ; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query2.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query2.groovy index 6f9a9d7010d00f..c55063a80eed8b 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query2.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query2.groovy @@ -24,13 +24,69 @@ suite("query2") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with wscs as + (select sold_date_sk + ,sales_price + from (select ws_sold_date_sk sold_date_sk + ,ws_ext_sales_price sales_price + from web_sales + union all + select cs_sold_date_sk sold_date_sk + ,cs_ext_sales_price sales_price + from catalog_sales) t), + wswscs as + (select d_week_seq, + sum(case when (d_day_name='Sunday') then sales_price else null end) sun_sales, + sum(case when (d_day_name='Monday') then sales_price else null end) mon_sales, + sum(case when (d_day_name='Tuesday') then sales_price else null end) tue_sales, + sum(case when (d_day_name='Wednesday') then sales_price else null end) wed_sales, + sum(case when (d_day_name='Thursday') then sales_price else null end) thu_sales, + sum(case when (d_day_name='Friday') then sales_price else null end) fri_sales, + sum(case when (d_day_name='Saturday') then sales_price else null end) sat_sales + from wscs + ,date_dim + where d_date_sk = sold_date_sk + group by d_week_seq) + select d_week_seq1 + ,round(sun_sales1/sun_sales2,2) + ,round(mon_sales1/mon_sales2,2) + ,round(tue_sales1/tue_sales2,2) + ,round(wed_sales1/wed_sales2,2) + ,round(thu_sales1/thu_sales2,2) + ,round(fri_sales1/fri_sales2,2) + ,round(sat_sales1/sat_sales2,2) + from + (select wswscs.d_week_seq d_week_seq1 + ,sun_sales sun_sales1 + ,mon_sales mon_sales1 + ,tue_sales tue_sales1 + ,wed_sales wed_sales1 + ,thu_sales thu_sales1 + ,fri_sales fri_sales1 + ,sat_sales sat_sales1 + from wswscs,date_dim + where date_dim.d_week_seq = wswscs.d_week_seq and + d_year = 1998) y, + (select wswscs.d_week_seq d_week_seq2 + ,sun_sales sun_sales2 + ,mon_sales mon_sales2 + ,tue_sales tue_sales2 + ,wed_sales wed_sales2 + ,thu_sales thu_sales2 + ,fri_sales fri_sales2 + ,sat_sales sat_sales2 + from wswscs + ,date_dim + where date_dim.d_week_seq = wswscs.d_week_seq and + d_year = 1998+1) z + where d_week_seq1=d_week_seq2-53 + order by d_week_seq1""" qt_ds_shape_2 ''' explain shape plan with wscs as @@ -89,7 +145,6 @@ sql 'set enable_runtime_filter_prune=false' where date_dim.d_week_seq = wswscs.d_week_seq and d_year = 1998+1) z where d_week_seq1=d_week_seq2-53 - order by d_week_seq1; - + order by d_week_seq1 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query20.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query20.groovy index c19a9c39ea9b05..96846c9204d062 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query20.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query20.groovy @@ -24,13 +24,39 @@ suite("query20") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price + ,sum(cs_ext_sales_price) as itemrevenue + ,sum(cs_ext_sales_price)*100/sum(sum(cs_ext_sales_price)) over + (partition by i_class) as revenueratio + from catalog_sales + ,item + ,date_dim + where cs_item_sk = i_item_sk + and i_category in ('Books', 'Music', 'Sports') + and cs_sold_date_sk = d_date_sk + and d_date between cast('2002-06-18' as date) + and (cast('2002-06-18' as date) + interval 30 day) + group by i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price + order by i_category + ,i_class + ,i_item_id + ,i_item_desc + ,revenueratio +limit 100""" qt_ds_shape_20 ''' explain shape plan select i_item_id @@ -59,7 +85,6 @@ sql 'set enable_runtime_filter_prune=false' ,i_item_id ,i_item_desc ,revenueratio -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query21.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query21.groovy index f8a7fd56d3e0b3..6641a42d9ce42e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query21.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query21.groovy @@ -24,13 +24,39 @@ suite("query21") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select * + from(select w_warehouse_name + ,i_item_id + ,sum(case when (cast(d_date as date) < cast ('1999-06-22' as date)) + then inv_quantity_on_hand + else 0 end) as inv_before + ,sum(case when (cast(d_date as date) >= cast ('1999-06-22' as date)) + then inv_quantity_on_hand + else 0 end) as inv_after + from inventory + ,warehouse + ,item + ,date_dim + where i_current_price between 0.99 and 1.49 + and i_item_sk = inv_item_sk + and inv_warehouse_sk = w_warehouse_sk + and inv_date_sk = d_date_sk + and d_date between (cast ('1999-06-22' as date) - interval 30 day) + and (cast ('1999-06-22' as date) + interval 30 day) + group by w_warehouse_name, i_item_id) x + where (case when inv_before > 0 + then inv_after / inv_before + else null + end) between 2.0/3.0 and 3.0/2.0 + order by w_warehouse_name + ,i_item_id + limit 100""" qt_ds_shape_21 ''' explain shape plan select * @@ -59,7 +85,6 @@ sql 'set enable_runtime_filter_prune=false' end) between 2.0/3.0 and 3.0/2.0 order by w_warehouse_name ,i_item_id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query22.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query22.groovy index f8226761bb16b4..8d965c3cf7b38c 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query22.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query22.groovy @@ -24,13 +24,29 @@ suite("query22") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_product_name + ,i_brand + ,i_class + ,i_category + ,avg(inv_quantity_on_hand) qoh + from inventory + ,date_dim + ,item + where inv_date_sk=d_date_sk + and inv_item_sk=i_item_sk + and d_month_seq between 1200 and 1200 + 11 + group by rollup(i_product_name + ,i_brand + ,i_class + ,i_category) +order by qoh, i_product_name, i_brand, i_class, i_category +limit 100""" qt_ds_shape_22 ''' explain shape plan select i_product_name @@ -49,7 +65,6 @@ sql 'set enable_runtime_filter_prune=false' ,i_class ,i_category) order by qoh, i_product_name, i_brand, i_class, i_category -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query23.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query23.groovy index 3f53b5a1e5aca0..d023e6e96bc616 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query23.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query23.groovy @@ -24,16 +24,13 @@ suite("query23") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - - qt_ds_shape_23 ''' - explain shape plan - with frequent_ss_items as + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with frequent_ss_items as (select substr(i_item_desc,1,30) itemdesc,i_item_sk item_sk,d_date solddate,count(*) cnt from store_sales ,date_dim @@ -81,31 +78,30 @@ from and ws_sold_date_sk = d_date_sk and ws_item_sk in (select item_sk from frequent_ss_items) and ws_bill_customer_sk in (select c_customer_sk from best_ss_customer)) t2 - limit 100; - ''' - qt_ds_shape_23_2 ''' + limit 100""" + qt_ds_shape_23 ''' explain shape plan -with frequent_ss_items as + with frequent_ss_items as (select substr(i_item_desc,1,30) itemdesc,i_item_sk item_sk,d_date solddate,count(*) cnt from store_sales - ,date_dim + ,date_dim ,item where ss_sold_date_sk = d_date_sk - and ss_item_sk = i_item_sk - and d_year in (2000,2000 + 1,2000 + 2,2000 + 3) + and ss_item_sk = i_item_sk + and d_year in (2000,2000+1,2000+2,2000+3) group by substr(i_item_desc,1,30),i_item_sk,d_date having count(*) >4), max_store_sales as - (select max(csales) tpcds_cmax + (select max(csales) tpcds_cmax from (select c_customer_sk,sum(ss_quantity*ss_sales_price) csales from store_sales ,customer ,date_dim where ss_customer_sk = c_customer_sk and ss_sold_date_sk = d_date_sk - and d_year in (2000,2000+1,2000+2,2000+3) + and d_year in (2000,2000+1,2000+2,2000+3) group by c_customer_sk) t), - best_ss_customer as +best_ss_customer as (select c_customer_sk,sum(ss_quantity*ss_sales_price) ssales from store_sales ,customer @@ -113,33 +109,26 @@ with frequent_ss_items as group by c_customer_sk having sum(ss_quantity*ss_sales_price) > (95/100.0) * (select * - from max_store_sales)) - select c_last_name,c_first_name,sales - from (select c_last_name,c_first_name,sum(cs_quantity*cs_list_price) sales - from catalog_sales - ,customer - ,date_dim - where d_year = 2000 +from + max_store_sales)) + select sum(sales) + from (select cs_quantity*cs_list_price sales + from catalog_sales + ,date_dim + where d_year = 2000 and d_moy = 7 and cs_sold_date_sk = d_date_sk and cs_item_sk in (select item_sk from frequent_ss_items) and cs_bill_customer_sk in (select c_customer_sk from best_ss_customer) - and cs_bill_customer_sk = c_customer_sk - group by c_last_name,c_first_name union all - select c_last_name,c_first_name,sum(ws_quantity*ws_list_price) sales - from web_sales - ,customer + select ws_quantity*ws_list_price sales + from web_sales ,date_dim where d_year = 2000 and d_moy = 7 and ws_sold_date_sk = d_date_sk and ws_item_sk in (select item_sk from frequent_ss_items) - and ws_bill_customer_sk in (select c_customer_sk from best_ss_customer) - and ws_bill_customer_sk = c_customer_sk - group by c_last_name,c_first_name) t2 - order by c_last_name,c_first_name,sales - limit 100; - + and ws_bill_customer_sk in (select c_customer_sk from best_ss_customer)) t2 + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query24.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query24.groovy index 009ad64f7636a8..a981616bf09095 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query24.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query24.groovy @@ -24,16 +24,13 @@ suite("query24") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - - qt_ds_shape_24 ''' - explain shape plan - with ssales as + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ssales as (select c_last_name ,c_first_name ,s_store_name @@ -84,11 +81,10 @@ having sum(netpaid) > (select 0.05*avg(netpaid) order by c_last_name ,c_first_name ,s_store_name -; - ''' - qt_ds_shape_24_2 ''' +""" + qt_ds_shape_24 ''' explain shape plan -with ssales as + with ssales as (select c_last_name ,c_first_name ,s_store_name @@ -114,7 +110,7 @@ where ss_ticket_number = sr_ticket_number and c_current_addr_sk = ca_address_sk and c_birth_country <> upper(ca_country) and s_zip = ca_zip - and s_market_id = 5 +and s_market_id=5 group by c_last_name ,c_first_name ,s_store_name @@ -130,16 +126,15 @@ select c_last_name ,s_store_name ,sum(netpaid) paid from ssales -where i_color = 'seashell' +where i_color = 'aquamarine' group by c_last_name ,c_first_name ,s_store_name having sum(netpaid) > (select 0.05*avg(netpaid) - from ssales) + from ssales) order by c_last_name ,c_first_name ,s_store_name -; ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query25.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query25.groovy index a4e3223306510a..04894128fc7a84 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query25.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query25.groovy @@ -24,13 +24,57 @@ suite("query25") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + ,max(ss_net_profit) as store_sales_profit + ,max(sr_net_loss) as store_returns_loss + ,max(cs_net_profit) as catalog_sales_profit + from + store_sales + ,store_returns + ,catalog_sales + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,item + where + d1.d_moy = 4 + and d1.d_year = 1999 + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and ss_customer_sk = sr_customer_sk + and ss_item_sk = sr_item_sk + and ss_ticket_number = sr_ticket_number + and sr_returned_date_sk = d2.d_date_sk + and d2.d_moy between 4 and 10 + and d2.d_year = 1999 + and sr_customer_sk = cs_bill_customer_sk + and sr_item_sk = cs_item_sk + and cs_sold_date_sk = d3.d_date_sk + and d3.d_moy between 4 and 10 + and d3.d_year = 1999 + group by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + order by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + limit 100""" qt_ds_shape_25 ''' explain shape plan select @@ -77,7 +121,6 @@ sql 'set enable_runtime_filter_prune=false' ,i_item_desc ,s_store_id ,s_store_name - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query26.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query26.groovy index 36785e95d6433a..455d18fdd512ee 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query26.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query26.groovy @@ -24,13 +24,30 @@ suite("query26") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_item_id, + avg(cs_quantity) agg1, + avg(cs_list_price) agg2, + avg(cs_coupon_amt) agg3, + avg(cs_sales_price) agg4 + from catalog_sales, customer_demographics, date_dim, item, promotion + where cs_sold_date_sk = d_date_sk and + cs_item_sk = i_item_sk and + cs_bill_cdemo_sk = cd_demo_sk and + cs_promo_sk = p_promo_sk and + cd_gender = 'M' and + cd_marital_status = 'W' and + cd_education_status = 'Unknown' and + (p_channel_email = 'N' or p_channel_event = 'N') and + d_year = 2002 + group by i_item_id + order by i_item_id + limit 100""" qt_ds_shape_26 ''' explain shape plan select i_item_id, @@ -50,7 +67,6 @@ sql 'set enable_runtime_filter_prune=false' d_year = 2002 group by i_item_id order by i_item_id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query27.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query27.groovy index c196c56d4f078b..0ef65b344941dc 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query27.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query27.groovy @@ -24,13 +24,32 @@ suite("query27") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_item_id, + s_state, grouping(s_state) g_state, + avg(ss_quantity) agg1, + avg(ss_list_price) agg2, + avg(ss_coupon_amt) agg3, + avg(ss_sales_price) agg4 + from store_sales, customer_demographics, date_dim, store, item + where ss_sold_date_sk = d_date_sk and + ss_item_sk = i_item_sk and + ss_store_sk = s_store_sk and + ss_cdemo_sk = cd_demo_sk and + cd_gender = 'M' and + cd_marital_status = 'W' and + cd_education_status = 'Secondary' and + d_year = 1999 and + s_state in ('TN','TN', 'TN', 'TN', 'TN', 'TN') + group by rollup (i_item_id, s_state) + order by i_item_id + ,s_state + limit 100""" qt_ds_shape_27 ''' explain shape plan select i_item_id, @@ -52,7 +71,6 @@ sql 'set enable_runtime_filter_prune=false' group by rollup (i_item_id, s_state) order by i_item_id ,s_state - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query28.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query28.groovy index 562a87794cc487..037f372448a497 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query28.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query28.groovy @@ -24,13 +24,62 @@ suite("query28") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select * +from (select avg(ss_list_price) B1_LP + ,count(ss_list_price) B1_CNT + ,count(distinct ss_list_price) B1_CNTD + from store_sales + where ss_quantity between 0 and 5 + and (ss_list_price between 107 and 107+10 + or ss_coupon_amt between 1319 and 1319+1000 + or ss_wholesale_cost between 60 and 60+20)) B1, + (select avg(ss_list_price) B2_LP + ,count(ss_list_price) B2_CNT + ,count(distinct ss_list_price) B2_CNTD + from store_sales + where ss_quantity between 6 and 10 + and (ss_list_price between 23 and 23+10 + or ss_coupon_amt between 825 and 825+1000 + or ss_wholesale_cost between 43 and 43+20)) B2, + (select avg(ss_list_price) B3_LP + ,count(ss_list_price) B3_CNT + ,count(distinct ss_list_price) B3_CNTD + from store_sales + where ss_quantity between 11 and 15 + and (ss_list_price between 74 and 74+10 + or ss_coupon_amt between 4381 and 4381+1000 + or ss_wholesale_cost between 57 and 57+20)) B3, + (select avg(ss_list_price) B4_LP + ,count(ss_list_price) B4_CNT + ,count(distinct ss_list_price) B4_CNTD + from store_sales + where ss_quantity between 16 and 20 + and (ss_list_price between 89 and 89+10 + or ss_coupon_amt between 3117 and 3117+1000 + or ss_wholesale_cost between 68 and 68+20)) B4, + (select avg(ss_list_price) B5_LP + ,count(ss_list_price) B5_CNT + ,count(distinct ss_list_price) B5_CNTD + from store_sales + where ss_quantity between 21 and 25 + and (ss_list_price between 58 and 58+10 + or ss_coupon_amt between 9402 and 9402+1000 + or ss_wholesale_cost between 38 and 38+20)) B5, + (select avg(ss_list_price) B6_LP + ,count(ss_list_price) B6_CNT + ,count(distinct ss_list_price) B6_CNTD + from store_sales + where ss_quantity between 26 and 30 + and (ss_list_price between 64 and 64+10 + or ss_coupon_amt between 5792 and 5792+1000 + or ss_wholesale_cost between 73 and 73+20)) B6 +limit 100""" qt_ds_shape_28 ''' explain shape plan select * @@ -82,7 +131,6 @@ from (select avg(ss_list_price) B1_LP and (ss_list_price between 64 and 64+10 or ss_coupon_amt between 5792 and 5792+1000 or ss_wholesale_cost between 73 and 73+20)) B6 -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query29.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query29.groovy index 15cd3c47ba54fe..32dcc775f069c7 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query29.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query29.groovy @@ -24,13 +24,56 @@ suite("query29") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + ,max(ss_quantity) as store_sales_quantity + ,max(sr_return_quantity) as store_returns_quantity + ,max(cs_quantity) as catalog_sales_quantity + from + store_sales + ,store_returns + ,catalog_sales + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,item + where + d1.d_moy = 4 + and d1.d_year = 1998 + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and ss_customer_sk = sr_customer_sk + and ss_item_sk = sr_item_sk + and ss_ticket_number = sr_ticket_number + and sr_returned_date_sk = d2.d_date_sk + and d2.d_moy between 4 and 4 + 3 + and d2.d_year = 1998 + and sr_customer_sk = cs_bill_customer_sk + and sr_item_sk = cs_item_sk + and cs_sold_date_sk = d3.d_date_sk + and d3.d_year in (1998,1998+1,1998+2) + group by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + order by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + limit 100""" qt_ds_shape_29 ''' explain shape plan select @@ -76,7 +119,6 @@ sql 'set enable_runtime_filter_prune=false' ,i_item_desc ,s_store_id ,s_store_name - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query3.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query3.groovy index 93971396d86826..f537961471ae14 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query3.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query3.groovy @@ -24,13 +24,30 @@ suite("query3") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select dt.d_year + ,item.i_brand_id brand_id + ,item.i_brand brand + ,sum(ss_sales_price) sum_agg + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manufact_id = 816 + and dt.d_moy=11 + group by dt.d_year + ,item.i_brand + ,item.i_brand_id + order by dt.d_year + ,sum_agg desc + ,brand_id + limit 100""" qt_ds_shape_3 ''' explain shape plan select dt.d_year @@ -50,7 +67,6 @@ sql 'set enable_runtime_filter_prune=false' order by dt.d_year ,sum_agg desc ,brand_id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query30.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query30.groovy index 8c7445128ec0df..287051b03c1e11 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query30.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query30.groovy @@ -24,13 +24,40 @@ suite("query30") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with customer_total_return as + (select wr_returning_customer_sk as ctr_customer_sk + ,ca_state as ctr_state, + sum(wr_return_amt) as ctr_total_return + from web_returns + ,date_dim + ,customer_address + where wr_returned_date_sk = d_date_sk + and d_year =2000 + and wr_returning_addr_sk = ca_address_sk + group by wr_returning_customer_sk + ,ca_state) + select c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag + ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address + ,c_last_review_date_sk,ctr_total_return + from customer_total_return ctr1 + ,customer_address + ,customer + where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 + from customer_total_return ctr2 + where ctr1.ctr_state = ctr2.ctr_state) + and ca_address_sk = c_current_addr_sk + and ca_state = 'AR' + and ctr1.ctr_customer_sk = c_customer_sk + order by c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag + ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address + ,c_last_review_date_sk,ctr_total_return +limit 100""" qt_ds_shape_30 ''' explain shape plan with customer_total_return as @@ -60,7 +87,6 @@ sql 'set enable_runtime_filter_prune=false' order by c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address ,c_last_review_date_sk,ctr_total_return -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query31.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query31.groovy index 212da1478633b2..05a4f307461326 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query31.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query31.groovy @@ -24,13 +24,61 @@ suite("query31") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ss as + (select ca_county,d_qoy, d_year,sum(ss_ext_sales_price) as store_sales + from store_sales,date_dim,customer_address + where ss_sold_date_sk = d_date_sk + and ss_addr_sk=ca_address_sk + group by ca_county,d_qoy, d_year), + ws as + (select ca_county,d_qoy, d_year,sum(ws_ext_sales_price) as web_sales + from web_sales,date_dim,customer_address + where ws_sold_date_sk = d_date_sk + and ws_bill_addr_sk=ca_address_sk + group by ca_county,d_qoy, d_year) + select + ss1.ca_county + ,ss1.d_year + ,ws2.web_sales/ws1.web_sales web_q1_q2_increase + ,ss2.store_sales/ss1.store_sales store_q1_q2_increase + ,ws3.web_sales/ws2.web_sales web_q2_q3_increase + ,ss3.store_sales/ss2.store_sales store_q2_q3_increase + from + ss ss1 + ,ss ss2 + ,ss ss3 + ,ws ws1 + ,ws ws2 + ,ws ws3 + where + ss1.d_qoy = 1 + and ss1.d_year = 1999 + and ss1.ca_county = ss2.ca_county + and ss2.d_qoy = 2 + and ss2.d_year = 1999 + and ss2.ca_county = ss3.ca_county + and ss3.d_qoy = 3 + and ss3.d_year = 1999 + and ss1.ca_county = ws1.ca_county + and ws1.d_qoy = 1 + and ws1.d_year = 1999 + and ws1.ca_county = ws2.ca_county + and ws2.d_qoy = 2 + and ws2.d_year = 1999 + and ws1.ca_county = ws3.ca_county + and ws3.d_qoy = 3 + and ws3.d_year =1999 + and case when ws1.web_sales > 0 then ws2.web_sales/ws1.web_sales else null end + > case when ss1.store_sales > 0 then ss2.store_sales/ss1.store_sales else null end + and case when ws2.web_sales > 0 then ws3.web_sales/ws2.web_sales else null end + > case when ss2.store_sales > 0 then ss3.store_sales/ss2.store_sales else null end + order by store_q2_q3_increase""" qt_ds_shape_31 ''' explain shape plan with ss as @@ -81,7 +129,6 @@ sql 'set enable_runtime_filter_prune=false' > case when ss1.store_sales > 0 then ss2.store_sales/ss1.store_sales else null end and case when ws2.web_sales > 0 then ws3.web_sales/ws2.web_sales else null end > case when ss2.store_sales > 0 then ss3.store_sales/ss2.store_sales else null end - order by store_q2_q3_increase; - + order by store_q2_q3_increase ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query32.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query32.groovy index 0812cc5ebd7196..2b7bb4c396be39 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query32.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query32.groovy @@ -24,13 +24,37 @@ suite("query32") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select sum(cs_ext_discount_amt) as "excess discount amount" +from + catalog_sales + ,item + ,date_dim +where +i_manufact_id = 722 +and i_item_sk = cs_item_sk +and d_date between '2001-03-09' and + (cast('2001-03-09' as date) + interval 90 day) +and d_date_sk = cs_sold_date_sk +and cs_ext_discount_amt + > ( + select + 1.3 * avg(cs_ext_discount_amt) + from + catalog_sales + ,date_dim + where + cs_item_sk = i_item_sk + and d_date between '2001-03-09' and + (cast('2001-03-09' as date) + interval 90 day) + and d_date_sk = cs_sold_date_sk + ) +limit 100""" qt_ds_shape_32 ''' explain shape plan select sum(cs_ext_discount_amt) as "excess discount amount" @@ -57,7 +81,6 @@ and cs_ext_discount_amt (cast('2001-03-09' as date) + interval 90 day) and d_date_sk = cs_sold_date_sk ) -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query33.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query33.groovy index b6af7ee5bfd370..9b802bed918ab9 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query33.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query33.groovy @@ -24,13 +24,84 @@ suite("query33") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ss as ( + select + i_manufact_id,sum(ss_ext_sales_price) total_sales + from + store_sales, + date_dim, + customer_address, + item + where + i_manufact_id in (select + i_manufact_id +from + item +where i_category in ('Books')) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 2001 + and d_moy = 3 + and ss_addr_sk = ca_address_sk + and ca_gmt_offset = -5 + group by i_manufact_id), + cs as ( + select + i_manufact_id,sum(cs_ext_sales_price) total_sales + from + catalog_sales, + date_dim, + customer_address, + item + where + i_manufact_id in (select + i_manufact_id +from + item +where i_category in ('Books')) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 2001 + and d_moy = 3 + and cs_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -5 + group by i_manufact_id), + ws as ( + select + i_manufact_id,sum(ws_ext_sales_price) total_sales + from + web_sales, + date_dim, + customer_address, + item + where + i_manufact_id in (select + i_manufact_id +from + item +where i_category in ('Books')) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 2001 + and d_moy = 3 + and ws_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -5 + group by i_manufact_id) + select i_manufact_id ,sum(total_sales) total_sales + from (select * from ss + union all + select * from cs + union all + select * from ws) tmp1 + group by i_manufact_id + order by total_sales +limit 100""" qt_ds_shape_33 ''' explain shape plan with ss as ( @@ -104,7 +175,6 @@ where i_category in ('Books')) select * from ws) tmp1 group by i_manufact_id order by total_sales -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query34.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query34.groovy index dbada638b2f650..e3791dce0b241d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query34.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query34.groovy @@ -24,13 +24,40 @@ suite("query34") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select c_last_name + ,c_first_name + ,c_salutation + ,c_preferred_cust_flag + ,ss_ticket_number + ,cnt from + (select ss_ticket_number + ,ss_customer_sk + ,count(*) cnt + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and (date_dim.d_dom between 1 and 3 or date_dim.d_dom between 25 and 28) + and (household_demographics.hd_buy_potential = '1001-5000' or + household_demographics.hd_buy_potential = '0-500') + and household_demographics.hd_vehicle_count > 0 + and (case when household_demographics.hd_vehicle_count > 0 + then household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count + else null + end) > 1.2 + and date_dim.d_year in (2000,2000+1,2000+2) + and store.s_county in ('Williamson County','Williamson County','Williamson County','Williamson County', + 'Williamson County','Williamson County','Williamson County','Williamson County') + group by ss_ticket_number,ss_customer_sk) dn,customer + where ss_customer_sk = c_customer_sk + and cnt between 15 and 20 + order by c_last_name,c_first_name,c_salutation,c_preferred_cust_flag desc, ss_ticket_number""" qt_ds_shape_34 ''' explain shape plan select c_last_name @@ -60,7 +87,6 @@ sql 'set enable_runtime_filter_prune=false' group by ss_ticket_number,ss_customer_sk) dn,customer where ss_customer_sk = c_customer_sk and cnt between 15 and 20 - order by c_last_name,c_first_name,c_salutation,c_preferred_cust_flag desc, ss_ticket_number; - + order by c_last_name,c_first_name,c_salutation,c_preferred_cust_flag desc, ss_ticket_number ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query35.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query35.groovy index 1dbb2ccc80e675..89aee2bebcd5fe 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query35.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query35.groovy @@ -24,13 +24,67 @@ suite("query35") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + ca_state, + cd_gender, + cd_marital_status, + cd_dep_count, + count(*) cnt1, + avg(cd_dep_count), + stddev_samp(cd_dep_count), + sum(cd_dep_count), + cd_dep_employed_count, + count(*) cnt2, + avg(cd_dep_employed_count), + stddev_samp(cd_dep_employed_count), + sum(cd_dep_employed_count), + cd_dep_college_count, + count(*) cnt3, + avg(cd_dep_college_count), + stddev_samp(cd_dep_college_count), + sum(cd_dep_college_count) + from + customer c,customer_address ca,customer_demographics + where + c.c_current_addr_sk = ca.ca_address_sk and + cd_demo_sk = c.c_current_cdemo_sk and + exists (select * + from store_sales,date_dim + where c.c_customer_sk = ss_customer_sk and + ss_sold_date_sk = d_date_sk and + d_year = 1999 and + d_qoy < 4) and + (exists (select * + from web_sales,date_dim + where c.c_customer_sk = ws_bill_customer_sk and + ws_sold_date_sk = d_date_sk and + d_year = 1999 and + d_qoy < 4) or + exists (select * + from catalog_sales,date_dim + where c.c_customer_sk = cs_ship_customer_sk and + cs_sold_date_sk = d_date_sk and + d_year = 1999 and + d_qoy < 4)) + group by ca_state, + cd_gender, + cd_marital_status, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count + order by ca_state, + cd_gender, + cd_marital_status, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count + limit 100""" qt_ds_shape_35 ''' explain shape plan select @@ -87,7 +141,6 @@ sql 'set enable_runtime_filter_prune=false' cd_dep_count, cd_dep_employed_count, cd_dep_college_count - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query36.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query36.groovy index c5d4e670183380..2019b801153a40 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query36.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query36.groovy @@ -24,13 +24,39 @@ suite("query36") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin + ,i_category + ,i_class + ,grouping(i_category)+grouping(i_class) as lochierarchy + ,rank() over ( + partition by grouping(i_category)+grouping(i_class), + case when grouping(i_class) = 0 then i_category end + order by sum(ss_net_profit)/sum(ss_ext_sales_price) asc) as rank_within_parent + from + store_sales + ,date_dim d1 + ,item + ,store + where + d1.d_year = 2000 + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and s_state in ('TN','TN','TN','TN', + 'TN','TN','TN','TN') + group by rollup(i_category,i_class) + order by + lochierarchy desc + ,case when lochierarchy = 0 then i_category end + ,rank_within_parent + limit 100""" qt_ds_shape_36 ''' explain shape plan select @@ -59,7 +85,6 @@ sql 'set enable_runtime_filter_prune=false' lochierarchy desc ,case when lochierarchy = 0 then i_category end ,rank_within_parent - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query37.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query37.groovy index a5d4aeec5fc498..923d22ee914fa6 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query37.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query37.groovy @@ -24,13 +24,26 @@ suite("query37") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_item_id + ,i_item_desc + ,i_current_price + from item, inventory, date_dim, catalog_sales + where i_current_price between 29 and 29 + 30 + and inv_item_sk = i_item_sk + and d_date_sk=inv_date_sk + and d_date between cast('2002-03-29' as date) and (cast('2002-03-29' as date) + interval 60 day) + and i_manufact_id in (705,742,777,944) + and inv_quantity_on_hand between 100 and 500 + and cs_item_sk = i_item_sk + group by i_item_id,i_item_desc,i_current_price + order by i_item_id + limit 100""" qt_ds_shape_37 ''' explain shape plan select i_item_id @@ -46,7 +59,6 @@ sql 'set enable_runtime_filter_prune=false' and cs_item_sk = i_item_sk group by i_item_id,i_item_desc,i_current_price order by i_item_id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query38.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query38.groovy index 571d9ce9681675..c2f269bffa0f8b 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query38.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query38.groovy @@ -24,13 +24,32 @@ suite("query38") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select count(*) from ( + select distinct c_last_name, c_first_name, d_date + from store_sales, date_dim, customer + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_customer_sk = customer.c_customer_sk + and d_month_seq between 1189 and 1189 + 11 + intersect + select distinct c_last_name, c_first_name, d_date + from catalog_sales, date_dim, customer + where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk + and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1189 and 1189 + 11 + intersect + select distinct c_last_name, c_first_name, d_date + from web_sales, date_dim, customer + where web_sales.ws_sold_date_sk = date_dim.d_date_sk + and web_sales.ws_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1189 and 1189 + 11 +) hot_cust +limit 100""" qt_ds_shape_38 ''' explain shape plan select count(*) from ( @@ -52,7 +71,6 @@ sql 'set enable_runtime_filter_prune=false' and web_sales.ws_bill_customer_sk = customer.c_customer_sk and d_month_seq between 1189 and 1189 + 11 ) hot_cust -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query39.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query39.groovy index 4ae42ff5790505..4991d68aa41629 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query39.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query39.groovy @@ -24,16 +24,13 @@ suite("query39") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - - qt_ds_shape_39 ''' - explain shape plan - with inv as + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with inv as (select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy ,stdev,mean, case mean when 0 then null else stdev/mean end cov from(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy @@ -56,14 +53,10 @@ where inv1.i_item_sk = inv2.i_item_sk and inv1.d_moy=1 and inv2.d_moy=1+1 order by inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean,inv1.cov - ,inv2.d_moy,inv2.mean, inv2.cov; - - - - ''' - qt_ds_shape_39_2 ''' + ,inv2.d_moy,inv2.mean, inv2.cov""" + qt_ds_shape_39 ''' explain shape plan -with inv as + with inv as (select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy ,stdev,mean, case mean when 0 then null else stdev/mean end cov from(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy @@ -85,9 +78,7 @@ where inv1.i_item_sk = inv2.i_item_sk and inv1.w_warehouse_sk = inv2.w_warehouse_sk and inv1.d_moy=1 and inv2.d_moy=1+1 - and inv1.cov > 1.5 order by inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean,inv1.cov - ,inv2.d_moy,inv2.mean, inv2.cov; - + ,inv2.d_moy,inv2.mean, inv2.cov ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query4.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query4.groovy index 83e52ba176d3cf..3aeb28dcaa3f31 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query4.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query4.groovy @@ -24,13 +24,125 @@ suite("query4") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag customer_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(((ss_ext_list_price-ss_ext_wholesale_cost-ss_ext_discount_amt)+ss_ext_sales_price)/2) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag customer_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum((((cs_ext_list_price-cs_ext_wholesale_cost-cs_ext_discount_amt)+cs_ext_sales_price)/2) ) year_total + ,'c' sale_type + from customer + ,catalog_sales + ,date_dim + where c_customer_sk = cs_bill_customer_sk + and cs_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year +union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag customer_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum((((ws_ext_list_price-ws_ext_wholesale_cost-ws_ext_discount_amt)+ws_ext_sales_price)/2) ) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + ) + select + t_s_secyear.customer_id + ,t_s_secyear.customer_first_name + ,t_s_secyear.customer_last_name + ,t_s_secyear.customer_birth_country + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_c_firstyear + ,year_total t_c_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_c_secyear.customer_id + and t_s_firstyear.customer_id = t_c_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_c_firstyear.sale_type = 'c' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_c_secyear.sale_type = 'c' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.dyear = 1999 + and t_s_secyear.dyear = 1999+1 + and t_c_firstyear.dyear = 1999 + and t_c_secyear.dyear = 1999+1 + and t_w_firstyear.dyear = 1999 + and t_w_secyear.dyear = 1999+1 + and t_s_firstyear.year_total > 0 + and t_c_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_c_firstyear.year_total > 0 then t_c_secyear.year_total / t_c_firstyear.year_total else null end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end + and case when t_c_firstyear.year_total > 0 then t_c_secyear.year_total / t_c_firstyear.year_total else null end + > case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end + order by t_s_secyear.customer_id + ,t_s_secyear.customer_first_name + ,t_s_secyear.customer_last_name + ,t_s_secyear.customer_birth_country +limit 100""" qt_ds_shape_4 ''' explain shape plan with year_total as ( @@ -145,7 +257,6 @@ union all ,t_s_secyear.customer_first_name ,t_s_secyear.customer_last_name ,t_s_secyear.customer_birth_country -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query40.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query40.groovy index 09c36e38f198ff..e89ddadcfbd798 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query40.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query40.groovy @@ -24,13 +24,37 @@ suite("query40") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + w_state + ,i_item_id + ,sum(case when (cast(d_date as date) < cast ('2001-05-02' as date)) + then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_before + ,sum(case when (cast(d_date as date) >= cast ('2001-05-02' as date)) + then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_after + from + catalog_sales left outer join catalog_returns on + (cs_order_number = cr_order_number + and cs_item_sk = cr_item_sk) + ,warehouse + ,item + ,date_dim + where + i_current_price between 0.99 and 1.49 + and i_item_sk = cs_item_sk + and cs_warehouse_sk = w_warehouse_sk + and cs_sold_date_sk = d_date_sk + and d_date between (cast ('2001-05-02' as date) - interval 30 day) + and (cast ('2001-05-02' as date) + interval 30 day) + group by + w_state,i_item_id + order by w_state,i_item_id +limit 100""" qt_ds_shape_40 ''' explain shape plan select @@ -57,7 +81,6 @@ sql 'set enable_runtime_filter_prune=false' group by w_state,i_item_id order by w_state,i_item_id -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query41.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query41.groovy index dfedffb07511b6..6d7b53732f0cb1 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query41.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query41.groovy @@ -24,13 +24,61 @@ suite("query41") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select distinct(i_product_name) + from item i1 + where i_manufact_id between 704 and 704+40 + and (select count(*) as item_cnt + from item + where (i_manufact = i1.i_manufact and + ((i_category = 'Women' and + (i_color = 'forest' or i_color = 'lime') and + (i_units = 'Pallet' or i_units = 'Pound') and + (i_size = 'economy' or i_size = 'small') + ) or + (i_category = 'Women' and + (i_color = 'navy' or i_color = 'slate') and + (i_units = 'Gross' or i_units = 'Bunch') and + (i_size = 'extra large' or i_size = 'petite') + ) or + (i_category = 'Men' and + (i_color = 'powder' or i_color = 'sky') and + (i_units = 'Dozen' or i_units = 'Lb') and + (i_size = 'N/A' or i_size = 'large') + ) or + (i_category = 'Men' and + (i_color = 'maroon' or i_color = 'smoke') and + (i_units = 'Ounce' or i_units = 'Case') and + (i_size = 'economy' or i_size = 'small') + ))) or + (i_manufact = i1.i_manufact and + ((i_category = 'Women' and + (i_color = 'dark' or i_color = 'aquamarine') and + (i_units = 'Ton' or i_units = 'Tbl') and + (i_size = 'economy' or i_size = 'small') + ) or + (i_category = 'Women' and + (i_color = 'frosted' or i_color = 'plum') and + (i_units = 'Dram' or i_units = 'Box') and + (i_size = 'extra large' or i_size = 'petite') + ) or + (i_category = 'Men' and + (i_color = 'papaya' or i_color = 'peach') and + (i_units = 'Bundle' or i_units = 'Carton') and + (i_size = 'N/A' or i_size = 'large') + ) or + (i_category = 'Men' and + (i_color = 'firebrick' or i_color = 'sienna') and + (i_units = 'Cup' or i_units = 'Each') and + (i_size = 'economy' or i_size = 'small') + )))) > 0 + order by i_product_name + limit 100""" qt_ds_shape_41 ''' explain shape plan select distinct(i_product_name) @@ -81,7 +129,6 @@ sql 'set enable_runtime_filter_prune=false' (i_size = 'economy' or i_size = 'small') )))) > 0 order by i_product_name - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query42.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query42.groovy index 0144098273e43d..b24f4c4f500e0d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query42.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query42.groovy @@ -24,13 +24,31 @@ suite("query42") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select dt.d_year + ,item.i_category_id + ,item.i_category + ,sum(ss_ext_sales_price) + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manager_id = 1 + and dt.d_moy=11 + and dt.d_year=1998 + group by dt.d_year + ,item.i_category_id + ,item.i_category + order by sum(ss_ext_sales_price) desc,dt.d_year + ,item.i_category_id + ,item.i_category +limit 100 """ qt_ds_shape_42 ''' explain shape plan select dt.d_year @@ -51,7 +69,6 @@ sql 'set enable_runtime_filter_prune=false' order by sum(ss_ext_sales_price) desc,dt.d_year ,item.i_category_id ,item.i_category -limit 100 ; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query43.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query43.groovy index 5d45cf5492a8e0..843549d2e3c53c 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query43.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query43.groovy @@ -24,13 +24,28 @@ suite("query43") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select s_store_name, s_store_id, + sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, + sum(case when (d_day_name='Monday') then ss_sales_price else null end) mon_sales, + sum(case when (d_day_name='Tuesday') then ss_sales_price else null end) tue_sales, + sum(case when (d_day_name='Wednesday') then ss_sales_price else null end) wed_sales, + sum(case when (d_day_name='Thursday') then ss_sales_price else null end) thu_sales, + sum(case when (d_day_name='Friday') then ss_sales_price else null end) fri_sales, + sum(case when (d_day_name='Saturday') then ss_sales_price else null end) sat_sales + from date_dim, store_sales, store + where d_date_sk = ss_sold_date_sk and + s_store_sk = ss_store_sk and + s_gmt_offset = -5 and + d_year = 2000 + group by s_store_name, s_store_id + order by s_store_name, s_store_id,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales + limit 100""" qt_ds_shape_43 ''' explain shape plan select s_store_name, s_store_id, @@ -48,7 +63,6 @@ sql 'set enable_runtime_filter_prune=false' d_year = 2000 group by s_store_name, s_store_id order by s_store_name, s_store_id,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query44.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query44.groovy index 341f33dff02c68..e7a85435048486 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query44.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query44.groovy @@ -24,13 +24,44 @@ suite("query44") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select asceding.rnk, i1.i_product_name best_performing, i2.i_product_name worst_performing +from(select * + from (select item_sk,rank() over (order by rank_col asc) rnk + from (select ss_item_sk item_sk,avg(ss_net_profit) rank_col + from store_sales ss1 + where ss_store_sk = 4 + group by ss_item_sk + having avg(ss_net_profit) > 0.9*(select avg(ss_net_profit) rank_col + from store_sales + where ss_store_sk = 4 + and ss_hdemo_sk is null + group by ss_store_sk))V1)V11 + where rnk < 11) asceding, + (select * + from (select item_sk,rank() over (order by rank_col desc) rnk + from (select ss_item_sk item_sk,avg(ss_net_profit) rank_col + from store_sales ss1 + where ss_store_sk = 4 + group by ss_item_sk + having avg(ss_net_profit) > 0.9*(select avg(ss_net_profit) rank_col + from store_sales + where ss_store_sk = 4 + and ss_hdemo_sk is null + group by ss_store_sk))V2)V21 + where rnk < 11) descending, +item i1, +item i2 +where asceding.rnk = descending.rnk + and i1.i_item_sk=asceding.item_sk + and i2.i_item_sk=descending.item_sk +order by asceding.rnk +limit 100""" qt_ds_shape_44 ''' explain shape plan select asceding.rnk, i1.i_product_name best_performing, i2.i_product_name worst_performing @@ -64,7 +95,6 @@ where asceding.rnk = descending.rnk and i1.i_item_sk=asceding.item_sk and i2.i_item_sk=descending.item_sk order by asceding.rnk -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query45.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query45.groovy index 85f1b5766a5b26..0830949b53883d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query45.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query45.groovy @@ -24,13 +24,29 @@ suite("query45") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select ca_zip, ca_city, sum(ws_sales_price) + from web_sales, customer, customer_address, date_dim, item + where ws_bill_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and ws_item_sk = i_item_sk + and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', '85392', '85460', '80348', '81792') + or + i_item_id in (select i_item_id + from item + where i_item_sk in (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) + ) + ) + and ws_sold_date_sk = d_date_sk + and d_qoy = 1 and d_year = 2000 + group by ca_zip, ca_city + order by ca_zip, ca_city + limit 100""" qt_ds_shape_45 ''' explain shape plan select ca_zip, ca_city, sum(ws_sales_price) @@ -49,7 +65,6 @@ sql 'set enable_runtime_filter_prune=false' and d_qoy = 1 and d_year = 2000 group by ca_zip, ca_city order by ca_zip, ca_city - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query46.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query46.groovy index dfaa7d8bd6cd54..9b71e7de8c394c 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query46.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query46.groovy @@ -24,13 +24,44 @@ suite("query46") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select c_last_name + ,c_first_name + ,ca_city + ,bought_city + ,ss_ticket_number + ,amt,profit + from + (select ss_ticket_number + ,ss_customer_sk + ,ca_city bought_city + ,sum(ss_coupon_amt) amt + ,sum(ss_net_profit) profit + from store_sales,date_dim,store,household_demographics,customer_address + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and store_sales.ss_addr_sk = customer_address.ca_address_sk + and (household_demographics.hd_dep_count = 8 or + household_demographics.hd_vehicle_count= 0) + and date_dim.d_dow in (6,0) + and date_dim.d_year in (2000,2000+1,2000+2) + and store.s_city in ('Midway','Fairview','Fairview','Midway','Fairview') + group by ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city) dn,customer,customer_address current_addr + where ss_customer_sk = c_customer_sk + and customer.c_current_addr_sk = current_addr.ca_address_sk + and current_addr.ca_city <> bought_city + order by c_last_name + ,c_first_name + ,ca_city + ,bought_city + ,ss_ticket_number + limit 100""" qt_ds_shape_46 ''' explain shape plan select c_last_name @@ -64,7 +95,6 @@ sql 'set enable_runtime_filter_prune=false' ,ca_city ,bought_city ,ss_ticket_number - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query47.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query47.groovy index 8d43c273d940ca..f95d5fcda76722 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query47.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query47.groovy @@ -24,13 +24,60 @@ suite("query47") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with v1 as( + select i_category, i_brand, + s_store_name, s_company_name, + d_year, d_moy, + sum(ss_sales_price) sum_sales, + avg(sum(ss_sales_price)) over + (partition by i_category, i_brand, + s_store_name, s_company_name, d_year) + avg_monthly_sales, + rank() over + (partition by i_category, i_brand, + s_store_name, s_company_name + order by d_year, d_moy) rn + from item, store_sales, date_dim, store + where ss_item_sk = i_item_sk and + ss_sold_date_sk = d_date_sk and + ss_store_sk = s_store_sk and + ( + d_year = 2000 or + ( d_year = 2000-1 and d_moy =12) or + ( d_year = 2000+1 and d_moy =1) + ) + group by i_category, i_brand, + s_store_name, s_company_name, + d_year, d_moy), + v2 as( + select v1.s_store_name, v1.s_company_name + ,v1.d_year + ,v1.avg_monthly_sales + ,v1.sum_sales, v1_lag.sum_sales psum, v1_lead.sum_sales nsum + from v1, v1 v1_lag, v1 v1_lead + where v1.i_category = v1_lag.i_category and + v1.i_category = v1_lead.i_category and + v1.i_brand = v1_lag.i_brand and + v1.i_brand = v1_lead.i_brand and + v1.s_store_name = v1_lag.s_store_name and + v1.s_store_name = v1_lead.s_store_name and + v1.s_company_name = v1_lag.s_company_name and + v1.s_company_name = v1_lead.s_company_name and + v1.rn = v1_lag.rn + 1 and + v1.rn = v1_lead.rn - 1) + select * + from v2 + where d_year = 2000 and + avg_monthly_sales > 0 and + case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 + order by sum_sales - avg_monthly_sales, nsum + limit 100""" qt_ds_shape_47 ''' explain shape plan with v1 as( @@ -80,7 +127,6 @@ sql 'set enable_runtime_filter_prune=false' avg_monthly_sales > 0 and case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 order by sum_sales - avg_monthly_sales, nsum - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query48.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query48.groovy index 8518952cd0b0df..25fc045529bd63 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query48.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query48.groovy @@ -24,13 +24,76 @@ suite("query48") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select sum (ss_quantity) + from store_sales, store, customer_demographics, customer_address, date_dim + where s_store_sk = ss_store_sk + and ss_sold_date_sk = d_date_sk and d_year = 2001 + and + ( + ( + cd_demo_sk = ss_cdemo_sk + and + cd_marital_status = 'S' + and + cd_education_status = 'Secondary' + and + ss_sales_price between 100.00 and 150.00 + ) + or + ( + cd_demo_sk = ss_cdemo_sk + and + cd_marital_status = 'M' + and + cd_education_status = '2 yr Degree' + and + ss_sales_price between 50.00 and 100.00 + ) + or + ( + cd_demo_sk = ss_cdemo_sk + and + cd_marital_status = 'D' + and + cd_education_status = 'Advanced Degree' + and + ss_sales_price between 150.00 and 200.00 + ) + ) + and + ( + ( + ss_addr_sk = ca_address_sk + and + ca_country = 'United States' + and + ca_state in ('ND', 'NY', 'SD') + and ss_net_profit between 0 and 2000 + ) + or + (ss_addr_sk = ca_address_sk + and + ca_country = 'United States' + and + ca_state in ('MD', 'GA', 'KS') + and ss_net_profit between 150 and 3000 + ) + or + (ss_addr_sk = ca_address_sk + and + ca_country = 'United States' + and + ca_state in ('CO', 'MN', 'NC') + and ss_net_profit between 50 and 25000 + ) + ) +""" qt_ds_shape_48 ''' explain shape plan select sum (ss_quantity) @@ -96,7 +159,6 @@ sql 'set enable_runtime_filter_prune=false' and ss_net_profit between 50 and 25000 ) ) -; ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query49.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query49.groovy index 6c528aee47ca62..140ef3fbbe1fe8 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query49.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query49.groovy @@ -24,13 +24,138 @@ suite("query49") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select channel, item, return_ratio, return_rank, currency_rank from + (select + 'web' as channel + ,web.item + ,web.return_ratio + ,web.return_rank + ,web.currency_rank + from ( + select + item + ,return_ratio + ,currency_ratio + ,rank() over (order by return_ratio) as return_rank + ,rank() over (order by currency_ratio) as currency_rank + from + ( select ws.ws_item_sk as item + ,(cast(sum(coalesce(wr.wr_return_quantity,0)) as decimal(15,4))/ + cast(sum(coalesce(ws.ws_quantity,0)) as decimal(15,4) )) as return_ratio + ,(cast(sum(coalesce(wr.wr_return_amt,0)) as decimal(15,4))/ + cast(sum(coalesce(ws.ws_net_paid,0)) as decimal(15,4) )) as currency_ratio + from + web_sales ws left outer join web_returns wr + on (ws.ws_order_number = wr.wr_order_number and + ws.ws_item_sk = wr.wr_item_sk) + ,date_dim + where + wr.wr_return_amt > 10000 + and ws.ws_net_profit > 1 + and ws.ws_net_paid > 0 + and ws.ws_quantity > 0 + and ws_sold_date_sk = d_date_sk + and d_year = 1998 + and d_moy = 11 + group by ws.ws_item_sk + ) in_web + ) web + where + ( + web.return_rank <= 10 + or + web.currency_rank <= 10 + ) + union + select + 'catalog' as channel + ,catalog.item + ,catalog.return_ratio + ,catalog.return_rank + ,catalog.currency_rank + from ( + select + item + ,return_ratio + ,currency_ratio + ,rank() over (order by return_ratio) as return_rank + ,rank() over (order by currency_ratio) as currency_rank + from + ( select + cs.cs_item_sk as item + ,(cast(sum(coalesce(cr.cr_return_quantity,0)) as decimal(15,4))/ + cast(sum(coalesce(cs.cs_quantity,0)) as decimal(15,4) )) as return_ratio + ,(cast(sum(coalesce(cr.cr_return_amount,0)) as decimal(15,4))/ + cast(sum(coalesce(cs.cs_net_paid,0)) as decimal(15,4) )) as currency_ratio + from + catalog_sales cs left outer join catalog_returns cr + on (cs.cs_order_number = cr.cr_order_number and + cs.cs_item_sk = cr.cr_item_sk) + ,date_dim + where + cr.cr_return_amount > 10000 + and cs.cs_net_profit > 1 + and cs.cs_net_paid > 0 + and cs.cs_quantity > 0 + and cs_sold_date_sk = d_date_sk + and d_year = 1998 + and d_moy = 11 + group by cs.cs_item_sk + ) in_cat + ) catalog + where + ( + catalog.return_rank <= 10 + or + catalog.currency_rank <=10 + ) + union + select + 'store' as channel + ,store.item + ,store.return_ratio + ,store.return_rank + ,store.currency_rank + from ( + select + item + ,return_ratio + ,currency_ratio + ,rank() over (order by return_ratio) as return_rank + ,rank() over (order by currency_ratio) as currency_rank + from + ( select sts.ss_item_sk as item + ,(cast(sum(coalesce(sr.sr_return_quantity,0)) as decimal(15,4))/cast(sum(coalesce(sts.ss_quantity,0)) as decimal(15,4) )) as return_ratio + ,(cast(sum(coalesce(sr.sr_return_amt,0)) as decimal(15,4))/cast(sum(coalesce(sts.ss_net_paid,0)) as decimal(15,4) )) as currency_ratio + from + store_sales sts left outer join store_returns sr + on (sts.ss_ticket_number = sr.sr_ticket_number and sts.ss_item_sk = sr.sr_item_sk) + ,date_dim + where + sr.sr_return_amt > 10000 + and sts.ss_net_profit > 1 + and sts.ss_net_paid > 0 + and sts.ss_quantity > 0 + and ss_sold_date_sk = d_date_sk + and d_year = 1998 + and d_moy = 11 + group by sts.ss_item_sk + ) in_store + ) store + where ( + store.return_rank <= 10 + or + store.currency_rank <= 10 + ) + ) + t order by 1,4,5,2 + limit 100""" qt_ds_shape_49 ''' explain shape plan select channel, item, return_ratio, return_rank, currency_rank from @@ -158,7 +283,6 @@ sql 'set enable_runtime_filter_prune=false' ) ) t order by 1,4,5,2 - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query5.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query5.groovy index 26d5f60382d1a3..a06402e87b8571 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query5.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query5.groovy @@ -24,13 +24,137 @@ suite("query5") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ssr as + (select s_store_id, + sum(sales_price) as sales, + sum(profit) as profit, + sum(return_amt) as returns, + sum(net_loss) as profit_loss + from + ( select ss_store_sk as store_sk, + ss_sold_date_sk as date_sk, + ss_ext_sales_price as sales_price, + ss_net_profit as profit, + cast(0 as decimal(7,2)) as return_amt, + cast(0 as decimal(7,2)) as net_loss + from store_sales + union all + select sr_store_sk as store_sk, + sr_returned_date_sk as date_sk, + cast(0 as decimal(7,2)) as sales_price, + cast(0 as decimal(7,2)) as profit, + sr_return_amt as return_amt, + sr_net_loss as net_loss + from store_returns + ) salesreturns, + date_dim, + store + where date_sk = d_date_sk + and d_date between cast('2000-08-19' as date) + and (cast('2000-08-19' as date) + interval 14 day) + and store_sk = s_store_sk + group by s_store_id) + , + csr as + (select cp_catalog_page_id, + sum(sales_price) as sales, + sum(profit) as profit, + sum(return_amt) as returns, + sum(net_loss) as profit_loss + from + ( select cs_catalog_page_sk as page_sk, + cs_sold_date_sk as date_sk, + cs_ext_sales_price as sales_price, + cs_net_profit as profit, + cast(0 as decimal(7,2)) as return_amt, + cast(0 as decimal(7,2)) as net_loss + from catalog_sales + union all + select cr_catalog_page_sk as page_sk, + cr_returned_date_sk as date_sk, + cast(0 as decimal(7,2)) as sales_price, + cast(0 as decimal(7,2)) as profit, + cr_return_amount as return_amt, + cr_net_loss as net_loss + from catalog_returns + ) salesreturns, + date_dim, + catalog_page + where date_sk = d_date_sk + and d_date between cast('2000-08-19' as date) + and (cast('2000-08-19' as date) + interval 14 day) + and page_sk = cp_catalog_page_sk + group by cp_catalog_page_id) + , + wsr as + (select web_site_id, + sum(sales_price) as sales, + sum(profit) as profit, + sum(return_amt) as returns, + sum(net_loss) as profit_loss + from + ( select ws_web_site_sk as wsr_web_site_sk, + ws_sold_date_sk as date_sk, + ws_ext_sales_price as sales_price, + ws_net_profit as profit, + cast(0 as decimal(7,2)) as return_amt, + cast(0 as decimal(7,2)) as net_loss + from web_sales + union all + select ws_web_site_sk as wsr_web_site_sk, + wr_returned_date_sk as date_sk, + cast(0 as decimal(7,2)) as sales_price, + cast(0 as decimal(7,2)) as profit, + wr_return_amt as return_amt, + wr_net_loss as net_loss + from web_returns left outer join web_sales on + ( wr_item_sk = ws_item_sk + and wr_order_number = ws_order_number) + ) salesreturns, + date_dim, + web_site + where date_sk = d_date_sk + and d_date between cast('2000-08-19' as date) + and (cast('2000-08-19' as date) + interval 14 day) + and wsr_web_site_sk = web_site_sk + group by web_site_id) + select channel + , id + , sum(sales) as sales + , sum(returns) as returns + , sum(profit) as profit + from + (select 'store channel' as channel + , concat('store', s_store_id) id + , sales + , returns + , (profit - profit_loss) as profit + from ssr + union all + select 'catalog channel' as channel + , concat('catalog_page', cp_catalog_page_id) id + , sales + , returns + , (profit - profit_loss) as profit + from csr + union all + select 'web channel' as channel + , concat('web_site', web_site_id) id + , sales + , returns + , (profit - profit_loss) as profit + from wsr + ) x + group by rollup (channel, id) + order by channel + ,id + limit 100""" qt_ds_shape_5 ''' explain shape plan with ssr as @@ -157,7 +281,6 @@ sql 'set enable_runtime_filter_prune=false' group by rollup (channel, id) order by channel ,id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query50.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query50.groovy index 425d2256841b10..a29671586b067f 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query50.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query50.groovy @@ -24,13 +24,68 @@ suite("query50") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + s_store_name + ,s_company_id + ,s_street_number + ,s_street_name + ,s_street_type + ,s_suite_number + ,s_city + ,s_county + ,s_state + ,s_zip + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk <= 30 ) then 1 else 0 end) as "30 days" + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 30) and + (sr_returned_date_sk - ss_sold_date_sk <= 60) then 1 else 0 end ) as "31-60 days" + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 60) and + (sr_returned_date_sk - ss_sold_date_sk <= 90) then 1 else 0 end) as "61-90 days" + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 90) and + (sr_returned_date_sk - ss_sold_date_sk <= 120) then 1 else 0 end) as "91-120 days" + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 120) then 1 else 0 end) as ">120 days" +from + store_sales + ,store_returns + ,store + ,date_dim d1 + ,date_dim d2 +where + d2.d_year = 2001 +and d2.d_moy = 8 +and ss_ticket_number = sr_ticket_number +and ss_item_sk = sr_item_sk +and ss_sold_date_sk = d1.d_date_sk +and sr_returned_date_sk = d2.d_date_sk +and ss_customer_sk = sr_customer_sk +and ss_store_sk = s_store_sk +group by + s_store_name + ,s_company_id + ,s_street_number + ,s_street_name + ,s_street_type + ,s_suite_number + ,s_city + ,s_county + ,s_state + ,s_zip +order by s_store_name + ,s_company_id + ,s_street_number + ,s_street_name + ,s_street_type + ,s_suite_number + ,s_city + ,s_county + ,s_state + ,s_zip +limit 100""" qt_ds_shape_50 ''' explain shape plan select @@ -88,7 +143,6 @@ order by s_store_name ,s_county ,s_state ,s_zip -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query51.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query51.groovy index 8c24e8bd61c43f..f940eef65583fa 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query51.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query51.groovy @@ -24,13 +24,54 @@ suite("query51") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """WITH web_v1 as ( +select + ws_item_sk item_sk, d_date, + sum(sum(ws_sales_price)) + over (partition by ws_item_sk order by d_date rows between unbounded preceding and current row) cume_sales +from web_sales + ,date_dim +where ws_sold_date_sk=d_date_sk + and d_month_seq between 1212 and 1212+11 + and ws_item_sk is not NULL +group by ws_item_sk, d_date), +store_v1 as ( +select + ss_item_sk item_sk, d_date, + sum(sum(ss_sales_price)) + over (partition by ss_item_sk order by d_date rows between unbounded preceding and current row) cume_sales +from store_sales + ,date_dim +where ss_sold_date_sk=d_date_sk + and d_month_seq between 1212 and 1212+11 + and ss_item_sk is not NULL +group by ss_item_sk, d_date) + select * +from (select item_sk + ,d_date + ,web_sales + ,store_sales + ,max(web_sales) + over (partition by item_sk order by d_date rows between unbounded preceding and current row) web_cumulative + ,max(store_sales) + over (partition by item_sk order by d_date rows between unbounded preceding and current row) store_cumulative + from (select case when web.item_sk is not null then web.item_sk else store.item_sk end item_sk + ,case when web.d_date is not null then web.d_date else store.d_date end d_date + ,web.cume_sales web_sales + ,store.cume_sales store_sales + from web_v1 web full outer join store_v1 store on (web.item_sk = store.item_sk + and web.d_date = store.d_date) + )x )y +where web_cumulative > store_cumulative +order by item_sk + ,d_date +limit 100""" qt_ds_shape_51 ''' explain shape plan WITH web_v1 as ( @@ -74,7 +115,6 @@ from (select item_sk where web_cumulative > store_cumulative order by item_sk ,d_date -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query52.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query52.groovy index 666b8f3f81f4f5..8e7ce9d5281371 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query52.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query52.groovy @@ -24,13 +24,31 @@ suite("query52") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select dt.d_year + ,item.i_brand_id brand_id + ,item.i_brand brand + ,sum(ss_ext_sales_price) ext_price + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manager_id = 1 + and dt.d_moy=12 + and dt.d_year=2000 + group by dt.d_year + ,item.i_brand + ,item.i_brand_id + order by dt.d_year + ,ext_price desc + ,brand_id +limit 100 """ qt_ds_shape_52 ''' explain shape plan select dt.d_year @@ -51,7 +69,6 @@ sql 'set enable_runtime_filter_prune=false' order by dt.d_year ,ext_price desc ,brand_id -limit 100 ; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query53.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query53.groovy index 06bbf8de95246f..c0e0355b2f8079 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query53.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query53.groovy @@ -24,13 +24,37 @@ suite("query53") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select * from +(select i_manufact_id, +sum(ss_sales_price) sum_sales, +avg(sum(ss_sales_price)) over (partition by i_manufact_id) avg_quarterly_sales +from item, store_sales, date_dim, store +where ss_item_sk = i_item_sk and +ss_sold_date_sk = d_date_sk and +ss_store_sk = s_store_sk and +d_month_seq in (1186,1186+1,1186+2,1186+3,1186+4,1186+5,1186+6,1186+7,1186+8,1186+9,1186+10,1186+11) and +((i_category in ('Books','Children','Electronics') and +i_class in ('personal','portable','reference','self-help') and +i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', + 'exportiunivamalg #9','scholaramalgamalg #9')) +or(i_category in ('Women','Music','Men') and +i_class in ('accessories','classical','fragrances','pants') and +i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', + 'importoamalg #1'))) +group by i_manufact_id, d_qoy ) tmp1 +where case when avg_quarterly_sales > 0 + then abs (sum_sales - avg_quarterly_sales)/ avg_quarterly_sales + else null end > 0.1 +order by avg_quarterly_sales, + sum_sales, + i_manufact_id +limit 100""" qt_ds_shape_53 ''' explain shape plan select * from @@ -57,7 +81,6 @@ where case when avg_quarterly_sales > 0 order by avg_quarterly_sales, sum_sales, i_manufact_id -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query54.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query54.groovy index a6ade92ca720ca..f5899a0f10044d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query54.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query54.groovy @@ -24,13 +24,65 @@ suite("query54") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with my_customers as ( + select distinct c_customer_sk + , c_current_addr_sk + from + ( select cs_sold_date_sk sold_date_sk, + cs_bill_customer_sk customer_sk, + cs_item_sk item_sk + from catalog_sales + union all + select ws_sold_date_sk sold_date_sk, + ws_bill_customer_sk customer_sk, + ws_item_sk item_sk + from web_sales + ) cs_or_ws_sales, + item, + date_dim, + customer + where sold_date_sk = d_date_sk + and item_sk = i_item_sk + and i_category = 'Music' + and i_class = 'country' + and c_customer_sk = cs_or_ws_sales.customer_sk + and d_moy = 1 + and d_year = 1999 + ) + , my_revenue as ( + select c_customer_sk, + sum(ss_ext_sales_price) as revenue + from my_customers, + store_sales, + customer_address, + store, + date_dim + where c_current_addr_sk = ca_address_sk + and ca_county = s_county + and ca_state = s_state + and ss_sold_date_sk = d_date_sk + and c_customer_sk = ss_customer_sk + and d_month_seq between (select distinct d_month_seq+1 + from date_dim where d_year = 1999 and d_moy = 1) + and (select distinct d_month_seq+3 + from date_dim where d_year = 1999 and d_moy = 1) + group by c_customer_sk + ) + , segments as + (select cast((revenue/50) as int) as segment + from my_revenue + ) + select segment, count(*) as num_customers, segment*50 as segment_base + from segments + group by segment + order by segment, num_customers + limit 100""" qt_ds_shape_54 ''' explain shape plan with my_customers as ( @@ -85,7 +137,6 @@ sql 'set enable_runtime_filter_prune=false' from segments group by segment order by segment, num_customers - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query55.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query55.groovy index e470ee42a438c3..683180f5fc99cd 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query55.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query55.groovy @@ -24,13 +24,23 @@ suite("query55") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_brand_id brand_id, i_brand brand, + sum(ss_ext_sales_price) ext_price + from date_dim, store_sales, item + where d_date_sk = ss_sold_date_sk + and ss_item_sk = i_item_sk + and i_manager_id=52 + and d_moy=11 + and d_year=2000 + group by i_brand, i_brand_id + order by ext_price desc, i_brand_id +limit 100 """ qt_ds_shape_55 ''' explain shape plan select i_brand_id brand_id, i_brand brand, @@ -43,7 +53,6 @@ sql 'set enable_runtime_filter_prune=false' and d_year=2000 group by i_brand, i_brand_id order by ext_price desc, i_brand_id -limit 100 ; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query56.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query56.groovy index 5568b9a51bff13..f3451694dbbeab 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query56.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query56.groovy @@ -24,13 +24,78 @@ suite("query56") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ss as ( + select i_item_id,sum(ss_ext_sales_price) total_sales + from + store_sales, + date_dim, + customer_address, + item + where i_item_id in (select + i_item_id +from item +where i_color in ('powder','orchid','pink')) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 3 + and ss_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_item_id), + cs as ( + select i_item_id,sum(cs_ext_sales_price) total_sales + from + catalog_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from item +where i_color in ('powder','orchid','pink')) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 3 + and cs_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_item_id), + ws as ( + select i_item_id,sum(ws_ext_sales_price) total_sales + from + web_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from item +where i_color in ('powder','orchid','pink')) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 3 + and ws_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_item_id) + select i_item_id ,sum(total_sales) total_sales + from (select * from ss + union all + select * from cs + union all + select * from ws) tmp1 + group by i_item_id + order by total_sales, + i_item_id + limit 100""" qt_ds_shape_56 ''' explain shape plan with ss as ( @@ -98,7 +163,6 @@ where i_color in ('powder','orchid','pink')) group by i_item_id order by total_sales, i_item_id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query57.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query57.groovy index 7dcd13c1643ec1..0bc931de71e165 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query57.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query57.groovy @@ -24,13 +24,57 @@ suite("query57") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with v1 as( + select i_category, i_brand, + cc_name, + d_year, d_moy, + sum(cs_sales_price) sum_sales, + avg(sum(cs_sales_price)) over + (partition by i_category, i_brand, + cc_name, d_year) + avg_monthly_sales, + rank() over + (partition by i_category, i_brand, + cc_name + order by d_year, d_moy) rn + from item, catalog_sales, date_dim, call_center + where cs_item_sk = i_item_sk and + cs_sold_date_sk = d_date_sk and + cc_call_center_sk= cs_call_center_sk and + ( + d_year = 2001 or + ( d_year = 2001-1 and d_moy =12) or + ( d_year = 2001+1 and d_moy =1) + ) + group by i_category, i_brand, + cc_name , d_year, d_moy), + v2 as( + select v1.i_category, v1.i_brand, v1.cc_name + ,v1.d_year + ,v1.avg_monthly_sales + ,v1.sum_sales, v1_lag.sum_sales psum, v1_lead.sum_sales nsum + from v1, v1 v1_lag, v1 v1_lead + where v1.i_category = v1_lag.i_category and + v1.i_category = v1_lead.i_category and + v1.i_brand = v1_lag.i_brand and + v1.i_brand = v1_lead.i_brand and + v1. cc_name = v1_lag. cc_name and + v1. cc_name = v1_lead. cc_name and + v1.rn = v1_lag.rn + 1 and + v1.rn = v1_lead.rn - 1) + select * + from v2 + where d_year = 2001 and + avg_monthly_sales > 0 and + case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 + order by sum_sales - avg_monthly_sales, avg_monthly_sales + limit 100""" qt_ds_shape_57 ''' explain shape plan with v1 as( @@ -77,7 +121,6 @@ sql 'set enable_runtime_filter_prune=false' avg_monthly_sales > 0 and case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 order by sum_sales - avg_monthly_sales, avg_monthly_sales - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query58.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query58.groovy index 0aaa81f7dc669d..b227b5d1f491ce 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query58.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query58.groovy @@ -24,13 +24,74 @@ suite("query58") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ss_items as + (select i_item_id item_id + ,sum(ss_ext_sales_price) ss_item_rev + from store_sales + ,item + ,date_dim + where ss_item_sk = i_item_sk + and d_date in (select d_date + from date_dim + where d_week_seq = (select d_week_seq + from date_dim + where d_date = '2001-06-16')) + and ss_sold_date_sk = d_date_sk + group by i_item_id), + cs_items as + (select i_item_id item_id + ,sum(cs_ext_sales_price) cs_item_rev + from catalog_sales + ,item + ,date_dim + where cs_item_sk = i_item_sk + and d_date in (select d_date + from date_dim + where d_week_seq = (select d_week_seq + from date_dim + where d_date = '2001-06-16')) + and cs_sold_date_sk = d_date_sk + group by i_item_id), + ws_items as + (select i_item_id item_id + ,sum(ws_ext_sales_price) ws_item_rev + from web_sales + ,item + ,date_dim + where ws_item_sk = i_item_sk + and d_date in (select d_date + from date_dim + where d_week_seq =(select d_week_seq + from date_dim + where d_date = '2001-06-16')) + and ws_sold_date_sk = d_date_sk + group by i_item_id) + select ss_items.item_id + ,ss_item_rev + ,ss_item_rev/((ss_item_rev+cs_item_rev+ws_item_rev)/3) * 100 ss_dev + ,cs_item_rev + ,cs_item_rev/((ss_item_rev+cs_item_rev+ws_item_rev)/3) * 100 cs_dev + ,ws_item_rev + ,ws_item_rev/((ss_item_rev+cs_item_rev+ws_item_rev)/3) * 100 ws_dev + ,(ss_item_rev+cs_item_rev+ws_item_rev)/3 average + from ss_items,cs_items,ws_items + where ss_items.item_id=cs_items.item_id + and ss_items.item_id=ws_items.item_id + and ss_item_rev between 0.9 * cs_item_rev and 1.1 * cs_item_rev + and ss_item_rev between 0.9 * ws_item_rev and 1.1 * ws_item_rev + and cs_item_rev between 0.9 * ss_item_rev and 1.1 * ss_item_rev + and cs_item_rev between 0.9 * ws_item_rev and 1.1 * ws_item_rev + and ws_item_rev between 0.9 * ss_item_rev and 1.1 * ss_item_rev + and ws_item_rev between 0.9 * cs_item_rev and 1.1 * cs_item_rev + order by item_id + ,ss_item_rev + limit 100""" qt_ds_shape_58 ''' explain shape plan with ss_items as @@ -94,7 +155,6 @@ sql 'set enable_runtime_filter_prune=false' and ws_item_rev between 0.9 * cs_item_rev and 1.1 * cs_item_rev order by item_id ,ss_item_rev - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query59.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query59.groovy index bb2b6e028312e8..1281bf8cdf4ce9 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query59.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query59.groovy @@ -24,13 +24,53 @@ suite("query59") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with wss as + (select d_week_seq, + ss_store_sk, + sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, + sum(case when (d_day_name='Monday') then ss_sales_price else null end) mon_sales, + sum(case when (d_day_name='Tuesday') then ss_sales_price else null end) tue_sales, + sum(case when (d_day_name='Wednesday') then ss_sales_price else null end) wed_sales, + sum(case when (d_day_name='Thursday') then ss_sales_price else null end) thu_sales, + sum(case when (d_day_name='Friday') then ss_sales_price else null end) fri_sales, + sum(case when (d_day_name='Saturday') then ss_sales_price else null end) sat_sales + from store_sales,date_dim + where d_date_sk = ss_sold_date_sk + group by d_week_seq,ss_store_sk + ) + select s_store_name1,s_store_id1,d_week_seq1 + ,sun_sales1/sun_sales2,mon_sales1/mon_sales2 + ,tue_sales1/tue_sales2,wed_sales1/wed_sales2,thu_sales1/thu_sales2 + ,fri_sales1/fri_sales2,sat_sales1/sat_sales2 + from + (select s_store_name s_store_name1,wss.d_week_seq d_week_seq1 + ,s_store_id s_store_id1,sun_sales sun_sales1 + ,mon_sales mon_sales1,tue_sales tue_sales1 + ,wed_sales wed_sales1,thu_sales thu_sales1 + ,fri_sales fri_sales1,sat_sales sat_sales1 + from wss,store,date_dim d + where d.d_week_seq = wss.d_week_seq and + wss.ss_store_sk = s_store_sk and + d_month_seq between 1195 and 1195 + 11) y, + (select s_store_name s_store_name2,wss.d_week_seq d_week_seq2 + ,s_store_id s_store_id2,sun_sales sun_sales2 + ,mon_sales mon_sales2,tue_sales tue_sales2 + ,wed_sales wed_sales2,thu_sales thu_sales2 + ,fri_sales fri_sales2,sat_sales sat_sales2 + from wss,store,date_dim d + where d.d_week_seq = wss.d_week_seq and + wss.ss_store_sk = s_store_sk and + d_month_seq between 1195+ 12 and 1195 + 23) x + where s_store_id1=s_store_id2 + and d_week_seq1=d_week_seq2-52 + order by s_store_name1,s_store_id1,d_week_seq1 +limit 100""" qt_ds_shape_59 ''' explain shape plan with wss as @@ -73,7 +113,6 @@ sql 'set enable_runtime_filter_prune=false' where s_store_id1=s_store_id2 and d_week_seq1=d_week_seq2-52 order by s_store_name1,s_store_id1,d_week_seq1 -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query6.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query6.groovy index e1bc304ab0ee13..dd2dcab7ec144a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query6.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query6.groovy @@ -24,13 +24,35 @@ suite("query6") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select a.ca_state state, count(*) cnt + from customer_address a + ,customer c + ,store_sales s + ,date_dim d + ,item i + where a.ca_address_sk = c.c_current_addr_sk + and c.c_customer_sk = s.ss_customer_sk + and s.ss_sold_date_sk = d.d_date_sk + and s.ss_item_sk = i.i_item_sk + and d.d_month_seq = + (select distinct (d_month_seq) + from date_dim + where d_year = 2002 + and d_moy = 3 ) + and i.i_current_price > 1.2 * + (select avg(j.i_current_price) + from item j + where j.i_category = i.i_category) + group by a.ca_state + having count(*) >= 10 + order by cnt, a.ca_state + limit 100""" qt_ds_shape_6 ''' explain shape plan select a.ca_state state, count(*) cnt @@ -55,7 +77,6 @@ sql 'set enable_runtime_filter_prune=false' group by a.ca_state having count(*) >= 10 order by cnt, a.ca_state - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query60.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query60.groovy index a9b77c417504a7..5f0b8468ef7192 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query60.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query60.groovy @@ -24,13 +24,87 @@ suite("query60") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ss as ( + select + i_item_id,sum(ss_ext_sales_price) total_sales + from + store_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from + item +where i_category in ('Jewelry')) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 10 + and ss_addr_sk = ca_address_sk + and ca_gmt_offset = -5 + group by i_item_id), + cs as ( + select + i_item_id,sum(cs_ext_sales_price) total_sales + from + catalog_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from + item +where i_category in ('Jewelry')) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 10 + and cs_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -5 + group by i_item_id), + ws as ( + select + i_item_id,sum(ws_ext_sales_price) total_sales + from + web_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from + item +where i_category in ('Jewelry')) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 10 + and ws_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -5 + group by i_item_id) + select + i_item_id +,sum(total_sales) total_sales + from (select * from ss + union all + select * from cs + union all + select * from ws) tmp1 + group by i_item_id + order by i_item_id + ,total_sales + limit 100""" qt_ds_shape_60 ''' explain shape plan with ss as ( @@ -107,7 +181,6 @@ where i_category in ('Jewelry')) group by i_item_id order by i_item_id ,total_sales - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query61.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query61.groovy index 89ead542ddd203..b722823808d88a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query61.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query61.groovy @@ -24,13 +24,53 @@ suite("query61") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100 +from + (select sum(ss_ext_sales_price) promotions + from store_sales + ,store + ,promotion + ,date_dim + ,customer + ,customer_address + ,item + where ss_sold_date_sk = d_date_sk + and ss_store_sk = s_store_sk + and ss_promo_sk = p_promo_sk + and ss_customer_sk= c_customer_sk + and ca_address_sk = c_current_addr_sk + and ss_item_sk = i_item_sk + and ca_gmt_offset = -7 + and i_category = 'Home' + and (p_channel_dmail = 'Y' or p_channel_email = 'Y' or p_channel_tv = 'Y') + and s_gmt_offset = -7 + and d_year = 2000 + and d_moy = 12) promotional_sales, + (select sum(ss_ext_sales_price) total + from store_sales + ,store + ,date_dim + ,customer + ,customer_address + ,item + where ss_sold_date_sk = d_date_sk + and ss_store_sk = s_store_sk + and ss_customer_sk= c_customer_sk + and ca_address_sk = c_current_addr_sk + and ss_item_sk = i_item_sk + and ca_gmt_offset = -7 + and i_category = 'Home' + and s_gmt_offset = -7 + and d_year = 2000 + and d_moy = 12) all_sales +order by promotions, total +limit 100""" qt_ds_shape_61 ''' explain shape plan select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100 @@ -73,7 +113,6 @@ from and d_year = 2000 and d_moy = 12) all_sales order by promotions, total -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query62.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query62.groovy index 610429c86b3632..1d56afef5db9bf 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query62.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query62.groovy @@ -24,13 +24,44 @@ suite("query62") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + substr(w_warehouse_name,1,20) + ,sm_type + ,web_name + ,sum(case when (ws_ship_date_sk - ws_sold_date_sk <= 30 ) then 1 else 0 end) as "30 days" + ,sum(case when (ws_ship_date_sk - ws_sold_date_sk > 30) and + (ws_ship_date_sk - ws_sold_date_sk <= 60) then 1 else 0 end ) as "31-60 days" + ,sum(case when (ws_ship_date_sk - ws_sold_date_sk > 60) and + (ws_ship_date_sk - ws_sold_date_sk <= 90) then 1 else 0 end) as "61-90 days" + ,sum(case when (ws_ship_date_sk - ws_sold_date_sk > 90) and + (ws_ship_date_sk - ws_sold_date_sk <= 120) then 1 else 0 end) as "91-120 days" + ,sum(case when (ws_ship_date_sk - ws_sold_date_sk > 120) then 1 else 0 end) as ">120 days" +from + web_sales + ,warehouse + ,ship_mode + ,web_site + ,date_dim +where + d_month_seq between 1223 and 1223 + 11 +and ws_ship_date_sk = d_date_sk +and ws_warehouse_sk = w_warehouse_sk +and ws_ship_mode_sk = sm_ship_mode_sk +and ws_web_site_sk = web_site_sk +group by + substr(w_warehouse_name,1,20) + ,sm_type + ,web_name +order by substr(w_warehouse_name,1,20) + ,sm_type + ,web_name +limit 100""" qt_ds_shape_62 ''' explain shape plan select @@ -64,7 +95,6 @@ group by order by substr(w_warehouse_name,1,20) ,sm_type ,web_name -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query63.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query63.groovy index 931e19113cc81d..1e81e214b37d84 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query63.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query63.groovy @@ -24,13 +24,38 @@ suite("query63") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select * +from (select i_manager_id + ,sum(ss_sales_price) sum_sales + ,avg(sum(ss_sales_price)) over (partition by i_manager_id) avg_monthly_sales + from item + ,store_sales + ,date_dim + ,store + where ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and ss_store_sk = s_store_sk + and d_month_seq in (1222,1222+1,1222+2,1222+3,1222+4,1222+5,1222+6,1222+7,1222+8,1222+9,1222+10,1222+11) + and (( i_category in ('Books','Children','Electronics') + and i_class in ('personal','portable','reference','self-help') + and i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', + 'exportiunivamalg #9','scholaramalgamalg #9')) + or( i_category in ('Women','Music','Men') + and i_class in ('accessories','classical','fragrances','pants') + and i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', + 'importoamalg #1'))) +group by i_manager_id, d_moy) tmp1 +where case when avg_monthly_sales > 0 then abs (sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 +order by i_manager_id + ,avg_monthly_sales + ,sum_sales +limit 100""" qt_ds_shape_63 ''' explain shape plan select * @@ -58,7 +83,6 @@ where case when avg_monthly_sales > 0 then abs (sum_sales - avg_monthly_sales) / order by i_manager_id ,avg_monthly_sales ,sum_sales -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query64.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query64.groovy index 11c7dbc36539fb..beef03a1ffe2c7 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query64.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query64.groovy @@ -24,14 +24,130 @@ suite("query64") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set enable_pipeline_engine = true' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with cs_ui as + (select cs_item_sk + ,sum(cs_ext_list_price) as sale,sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit) as refund + from catalog_sales + ,catalog_returns + where cs_item_sk = cr_item_sk + and cs_order_number = cr_order_number + group by cs_item_sk + having sum(cs_ext_list_price)>2*sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit)), +cross_sales as + (select i_product_name product_name + ,i_item_sk item_sk + ,s_store_name store_name + ,s_zip store_zip + ,ad1.ca_street_number b_street_number + ,ad1.ca_street_name b_street_name + ,ad1.ca_city b_city + ,ad1.ca_zip b_zip + ,ad2.ca_street_number c_street_number + ,ad2.ca_street_name c_street_name + ,ad2.ca_city c_city + ,ad2.ca_zip c_zip + ,d1.d_year as syear + ,d2.d_year as fsyear + ,d3.d_year s2year + ,count(*) cnt + ,sum(ss_wholesale_cost) s1 + ,sum(ss_list_price) s2 + ,sum(ss_coupon_amt) s3 + FROM store_sales + ,store_returns + ,cs_ui + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,customer + ,customer_demographics cd1 + ,customer_demographics cd2 + ,promotion + ,household_demographics hd1 + ,household_demographics hd2 + ,customer_address ad1 + ,customer_address ad2 + ,income_band ib1 + ,income_band ib2 + ,item + WHERE ss_store_sk = s_store_sk AND + ss_sold_date_sk = d1.d_date_sk AND + ss_customer_sk = c_customer_sk AND + ss_cdemo_sk= cd1.cd_demo_sk AND + ss_hdemo_sk = hd1.hd_demo_sk AND + ss_addr_sk = ad1.ca_address_sk and + ss_item_sk = i_item_sk and + ss_item_sk = sr_item_sk and + ss_ticket_number = sr_ticket_number and + ss_item_sk = cs_ui.cs_item_sk and + c_current_cdemo_sk = cd2.cd_demo_sk AND + c_current_hdemo_sk = hd2.hd_demo_sk AND + c_current_addr_sk = ad2.ca_address_sk and + c_first_sales_date_sk = d2.d_date_sk and + c_first_shipto_date_sk = d3.d_date_sk and + ss_promo_sk = p_promo_sk and + hd1.hd_income_band_sk = ib1.ib_income_band_sk and + hd2.hd_income_band_sk = ib2.ib_income_band_sk and + cd1.cd_marital_status <> cd2.cd_marital_status and + i_color in ('orange','lace','lawn','misty','blush','pink') and + i_current_price between 48 and 48 + 10 and + i_current_price between 48 + 1 and 48 + 15 +group by i_product_name + ,i_item_sk + ,s_store_name + ,s_zip + ,ad1.ca_street_number + ,ad1.ca_street_name + ,ad1.ca_city + ,ad1.ca_zip + ,ad2.ca_street_number + ,ad2.ca_street_name + ,ad2.ca_city + ,ad2.ca_zip + ,d1.d_year + ,d2.d_year + ,d3.d_year +) +select cs1.product_name + ,cs1.store_name + ,cs1.store_zip + ,cs1.b_street_number + ,cs1.b_street_name + ,cs1.b_city + ,cs1.b_zip + ,cs1.c_street_number + ,cs1.c_street_name + ,cs1.c_city + ,cs1.c_zip + ,cs1.syear + ,cs1.cnt + ,cs1.s1 as s11 + ,cs1.s2 as s21 + ,cs1.s3 as s31 + ,cs2.s1 as s12 + ,cs2.s2 as s22 + ,cs2.s3 as s32 + ,cs2.syear + ,cs2.cnt +from cross_sales cs1,cross_sales cs2 +where cs1.item_sk=cs2.item_sk and + cs1.syear = 1999 and + cs2.syear = 1999 + 1 and + cs2.cnt <= cs1.cnt and + cs1.store_name = cs2.store_name and + cs1.store_zip = cs2.store_zip +order by cs1.product_name + ,cs1.store_name + ,cs2.cnt + ,cs1.s1 + ,cs2.s1""" qt_ds_shape_64 ''' explain shape plan with cs_ui as @@ -151,7 +267,6 @@ order by cs1.product_name ,cs1.store_name ,cs2.cnt ,cs1.s1 - ,cs2.s1; - + ,cs2.s1 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query65.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query65.groovy index 4594420afe79f0..ebb95d12bfbee1 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query65.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query65.groovy @@ -24,13 +24,38 @@ suite("query65") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + s_store_name, + i_item_desc, + sc.revenue, + i_current_price, + i_wholesale_cost, + i_brand + from store, item, + (select ss_store_sk, avg(revenue) as ave + from + (select ss_store_sk, ss_item_sk, + sum(ss_sales_price) as revenue + from store_sales, date_dim + where ss_sold_date_sk = d_date_sk and d_month_seq between 1176 and 1176+11 + group by ss_store_sk, ss_item_sk) sa + group by ss_store_sk) sb, + (select ss_store_sk, ss_item_sk, sum(ss_sales_price) as revenue + from store_sales, date_dim + where ss_sold_date_sk = d_date_sk and d_month_seq between 1176 and 1176+11 + group by ss_store_sk, ss_item_sk) sc + where sb.ss_store_sk = sc.ss_store_sk and + sc.revenue <= 0.1 * sb.ave and + s_store_sk = sc.ss_store_sk and + i_item_sk = sc.ss_item_sk + order by s_store_name, i_item_desc +limit 100""" qt_ds_shape_65 ''' explain shape plan select @@ -58,7 +83,6 @@ sql 'set enable_runtime_filter_prune=false' s_store_sk = sc.ss_store_sk and i_item_sk = sc.ss_item_sk order by s_store_name, i_item_desc -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query66.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query66.groovy index eff7c12fe2e347..3c64236ca49522 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query66.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query66.groovy @@ -24,13 +24,229 @@ suite("query66") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,ship_carriers + ,year + ,sum(jan_sales) as jan_sales + ,sum(feb_sales) as feb_sales + ,sum(mar_sales) as mar_sales + ,sum(apr_sales) as apr_sales + ,sum(may_sales) as may_sales + ,sum(jun_sales) as jun_sales + ,sum(jul_sales) as jul_sales + ,sum(aug_sales) as aug_sales + ,sum(sep_sales) as sep_sales + ,sum(oct_sales) as oct_sales + ,sum(nov_sales) as nov_sales + ,sum(dec_sales) as dec_sales + ,sum(jan_sales/w_warehouse_sq_ft) as jan_sales_per_sq_foot + ,sum(feb_sales/w_warehouse_sq_ft) as feb_sales_per_sq_foot + ,sum(mar_sales/w_warehouse_sq_ft) as mar_sales_per_sq_foot + ,sum(apr_sales/w_warehouse_sq_ft) as apr_sales_per_sq_foot + ,sum(may_sales/w_warehouse_sq_ft) as may_sales_per_sq_foot + ,sum(jun_sales/w_warehouse_sq_ft) as jun_sales_per_sq_foot + ,sum(jul_sales/w_warehouse_sq_ft) as jul_sales_per_sq_foot + ,sum(aug_sales/w_warehouse_sq_ft) as aug_sales_per_sq_foot + ,sum(sep_sales/w_warehouse_sq_ft) as sep_sales_per_sq_foot + ,sum(oct_sales/w_warehouse_sq_ft) as oct_sales_per_sq_foot + ,sum(nov_sales/w_warehouse_sq_ft) as nov_sales_per_sq_foot + ,sum(dec_sales/w_warehouse_sq_ft) as dec_sales_per_sq_foot + ,sum(jan_net) as jan_net + ,sum(feb_net) as feb_net + ,sum(mar_net) as mar_net + ,sum(apr_net) as apr_net + ,sum(may_net) as may_net + ,sum(jun_net) as jun_net + ,sum(jul_net) as jul_net + ,sum(aug_net) as aug_net + ,sum(sep_net) as sep_net + ,sum(oct_net) as oct_net + ,sum(nov_net) as nov_net + ,sum(dec_net) as dec_net + from ( + select + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,concat(concat('ORIENTAL ', ','), ' BOXBUNDLES') as ship_carriers + ,d_year as year + ,sum(case when d_moy = 1 + then ws_ext_sales_price* ws_quantity else 0 end) as jan_sales + ,sum(case when d_moy = 2 + then ws_ext_sales_price* ws_quantity else 0 end) as feb_sales + ,sum(case when d_moy = 3 + then ws_ext_sales_price* ws_quantity else 0 end) as mar_sales + ,sum(case when d_moy = 4 + then ws_ext_sales_price* ws_quantity else 0 end) as apr_sales + ,sum(case when d_moy = 5 + then ws_ext_sales_price* ws_quantity else 0 end) as may_sales + ,sum(case when d_moy = 6 + then ws_ext_sales_price* ws_quantity else 0 end) as jun_sales + ,sum(case when d_moy = 7 + then ws_ext_sales_price* ws_quantity else 0 end) as jul_sales + ,sum(case when d_moy = 8 + then ws_ext_sales_price* ws_quantity else 0 end) as aug_sales + ,sum(case when d_moy = 9 + then ws_ext_sales_price* ws_quantity else 0 end) as sep_sales + ,sum(case when d_moy = 10 + then ws_ext_sales_price* ws_quantity else 0 end) as oct_sales + ,sum(case when d_moy = 11 + then ws_ext_sales_price* ws_quantity else 0 end) as nov_sales + ,sum(case when d_moy = 12 + then ws_ext_sales_price* ws_quantity else 0 end) as dec_sales + ,sum(case when d_moy = 1 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as jan_net + ,sum(case when d_moy = 2 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as feb_net + ,sum(case when d_moy = 3 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as mar_net + ,sum(case when d_moy = 4 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as apr_net + ,sum(case when d_moy = 5 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as may_net + ,sum(case when d_moy = 6 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as jun_net + ,sum(case when d_moy = 7 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as jul_net + ,sum(case when d_moy = 8 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as aug_net + ,sum(case when d_moy = 9 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as sep_net + ,sum(case when d_moy = 10 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as oct_net + ,sum(case when d_moy = 11 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as nov_net + ,sum(case when d_moy = 12 + then ws_net_paid_inc_ship * ws_quantity else 0 end) as dec_net + from + web_sales + ,warehouse + ,date_dim + ,time_dim + ,ship_mode + where + ws_warehouse_sk = w_warehouse_sk + and ws_sold_date_sk = d_date_sk + and ws_sold_time_sk = t_time_sk + and ws_ship_mode_sk = sm_ship_mode_sk + and d_year = 2001 + and t_time between 42970 and 42970+28800 + and sm_carrier in ('ORIENTAL','BOXBUNDLES') + group by + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,d_year + union all + select + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,concat(concat('ORIENTAL ', ','), ' BOXBUNDLES') as ship_carriers + ,d_year as year + ,sum(case when d_moy = 1 + then cs_ext_list_price* cs_quantity else 0 end) as jan_sales + ,sum(case when d_moy = 2 + then cs_ext_list_price* cs_quantity else 0 end) as feb_sales + ,sum(case when d_moy = 3 + then cs_ext_list_price* cs_quantity else 0 end) as mar_sales + ,sum(case when d_moy = 4 + then cs_ext_list_price* cs_quantity else 0 end) as apr_sales + ,sum(case when d_moy = 5 + then cs_ext_list_price* cs_quantity else 0 end) as may_sales + ,sum(case when d_moy = 6 + then cs_ext_list_price* cs_quantity else 0 end) as jun_sales + ,sum(case when d_moy = 7 + then cs_ext_list_price* cs_quantity else 0 end) as jul_sales + ,sum(case when d_moy = 8 + then cs_ext_list_price* cs_quantity else 0 end) as aug_sales + ,sum(case when d_moy = 9 + then cs_ext_list_price* cs_quantity else 0 end) as sep_sales + ,sum(case when d_moy = 10 + then cs_ext_list_price* cs_quantity else 0 end) as oct_sales + ,sum(case when d_moy = 11 + then cs_ext_list_price* cs_quantity else 0 end) as nov_sales + ,sum(case when d_moy = 12 + then cs_ext_list_price* cs_quantity else 0 end) as dec_sales + ,sum(case when d_moy = 1 + then cs_net_paid * cs_quantity else 0 end) as jan_net + ,sum(case when d_moy = 2 + then cs_net_paid * cs_quantity else 0 end) as feb_net + ,sum(case when d_moy = 3 + then cs_net_paid * cs_quantity else 0 end) as mar_net + ,sum(case when d_moy = 4 + then cs_net_paid * cs_quantity else 0 end) as apr_net + ,sum(case when d_moy = 5 + then cs_net_paid * cs_quantity else 0 end) as may_net + ,sum(case when d_moy = 6 + then cs_net_paid * cs_quantity else 0 end) as jun_net + ,sum(case when d_moy = 7 + then cs_net_paid * cs_quantity else 0 end) as jul_net + ,sum(case when d_moy = 8 + then cs_net_paid * cs_quantity else 0 end) as aug_net + ,sum(case when d_moy = 9 + then cs_net_paid * cs_quantity else 0 end) as sep_net + ,sum(case when d_moy = 10 + then cs_net_paid * cs_quantity else 0 end) as oct_net + ,sum(case when d_moy = 11 + then cs_net_paid * cs_quantity else 0 end) as nov_net + ,sum(case when d_moy = 12 + then cs_net_paid * cs_quantity else 0 end) as dec_net + from + catalog_sales + ,warehouse + ,date_dim + ,time_dim + ,ship_mode + where + cs_warehouse_sk = w_warehouse_sk + and cs_sold_date_sk = d_date_sk + and cs_sold_time_sk = t_time_sk + and cs_ship_mode_sk = sm_ship_mode_sk + and d_year = 2001 + and t_time between 42970 AND 42970+28800 + and sm_carrier in ('ORIENTAL','BOXBUNDLES') + group by + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,d_year + ) x + group by + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,ship_carriers + ,year + order by w_warehouse_name + limit 100""" qt_ds_shape_66 ''' explain shape plan select @@ -249,7 +465,6 @@ sql 'set enable_runtime_filter_prune=false' ,ship_carriers ,year order by w_warehouse_name - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query67.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query67.groovy index ccd56c63ef87e1..623de6fdec332c 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query67.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query67.groovy @@ -24,13 +24,53 @@ suite("query67") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select * +from (select i_category + ,i_class + ,i_brand + ,i_product_name + ,d_year + ,d_qoy + ,d_moy + ,s_store_id + ,sumsales + ,rank() over (partition by i_category order by sumsales desc) rk + from (select i_category + ,i_class + ,i_brand + ,i_product_name + ,d_year + ,d_qoy + ,d_moy + ,s_store_id + ,sum(coalesce(ss_sales_price*ss_quantity,0)) sumsales + from store_sales + ,date_dim + ,store + ,item + where ss_sold_date_sk=d_date_sk + and ss_item_sk=i_item_sk + and ss_store_sk = s_store_sk + and d_month_seq between 1217 and 1217+11 + group by rollup(i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy,s_store_id))dw1) dw2 +where rk <= 100 +order by i_category + ,i_class + ,i_brand + ,i_product_name + ,d_year + ,d_qoy + ,d_moy + ,s_store_id + ,sumsales + ,rk +limit 100""" qt_ds_shape_67 ''' explain shape plan select * @@ -73,7 +113,6 @@ order by i_category ,s_store_id ,sumsales ,rk -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query68.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query68.groovy index 25bdfcb6deb2e8..4cd22e62b2e0dc 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query68.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query68.groovy @@ -24,13 +24,51 @@ suite("query68") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select c_last_name + ,c_first_name + ,ca_city + ,bought_city + ,ss_ticket_number + ,extended_price + ,extended_tax + ,list_price + from (select ss_ticket_number + ,ss_customer_sk + ,ca_city bought_city + ,sum(ss_ext_sales_price) extended_price + ,sum(ss_ext_list_price) list_price + ,sum(ss_ext_tax) extended_tax + from store_sales + ,date_dim + ,store + ,household_demographics + ,customer_address + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and store_sales.ss_addr_sk = customer_address.ca_address_sk + and date_dim.d_dom between 1 and 2 + and (household_demographics.hd_dep_count = 3 or + household_demographics.hd_vehicle_count= 4) + and date_dim.d_year in (1998,1998+1,1998+2) + and store.s_city in ('Fairview','Midway') + group by ss_ticket_number + ,ss_customer_sk + ,ss_addr_sk,ca_city) dn + ,customer + ,customer_address current_addr + where ss_customer_sk = c_customer_sk + and customer.c_current_addr_sk = current_addr.ca_address_sk + and current_addr.ca_city <> bought_city + order by c_last_name + ,ss_ticket_number + limit 100""" qt_ds_shape_68 ''' explain shape plan select c_last_name @@ -71,7 +109,6 @@ sql 'set enable_runtime_filter_prune=false' and current_addr.ca_city <> bought_city order by c_last_name ,ss_ticket_number - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query69.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query69.groovy index 442a346a1657d3..83c72feeac6ab3 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query69.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query69.groovy @@ -24,13 +24,56 @@ suite("query69") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + cd_gender, + cd_marital_status, + cd_education_status, + count(*) cnt1, + cd_purchase_estimate, + count(*) cnt2, + cd_credit_rating, + count(*) cnt3 + from + customer c,customer_address ca,customer_demographics + where + c.c_current_addr_sk = ca.ca_address_sk and + ca_state in ('IL','TX','ME') and + cd_demo_sk = c.c_current_cdemo_sk and + exists (select * + from store_sales,date_dim + where c.c_customer_sk = ss_customer_sk and + ss_sold_date_sk = d_date_sk and + d_year = 2002 and + d_moy between 1 and 1+2) and + (not exists (select * + from web_sales,date_dim + where c.c_customer_sk = ws_bill_customer_sk and + ws_sold_date_sk = d_date_sk and + d_year = 2002 and + d_moy between 1 and 1+2) and + not exists (select * + from catalog_sales,date_dim + where c.c_customer_sk = cs_ship_customer_sk and + cs_sold_date_sk = d_date_sk and + d_year = 2002 and + d_moy between 1 and 1+2)) + group by cd_gender, + cd_marital_status, + cd_education_status, + cd_purchase_estimate, + cd_credit_rating + order by cd_gender, + cd_marital_status, + cd_education_status, + cd_purchase_estimate, + cd_credit_rating + limit 100""" qt_ds_shape_69 ''' explain shape plan select @@ -76,7 +119,6 @@ sql 'set enable_runtime_filter_prune=false' cd_education_status, cd_purchase_estimate, cd_credit_rating - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query7.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query7.groovy index d7685d0daa5a11..746679343fc82e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query7.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query7.groovy @@ -24,13 +24,30 @@ suite("query7") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_item_id, + avg(ss_quantity) agg1, + avg(ss_list_price) agg2, + avg(ss_coupon_amt) agg3, + avg(ss_sales_price) agg4 + from store_sales, customer_demographics, date_dim, item, promotion + where ss_sold_date_sk = d_date_sk and + ss_item_sk = i_item_sk and + ss_cdemo_sk = cd_demo_sk and + ss_promo_sk = p_promo_sk and + cd_gender = 'F' and + cd_marital_status = 'W' and + cd_education_status = 'College' and + (p_channel_email = 'N' or p_channel_event = 'N') and + d_year = 2001 + group by i_item_id + order by i_item_id + limit 100""" qt_ds_shape_7 ''' explain shape plan select i_item_id, @@ -50,7 +67,6 @@ sql 'set enable_runtime_filter_prune=false' d_year = 2001 group by i_item_id order by i_item_id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query70.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query70.groovy index 6f3afa4c5af24d..149fa5aa6425d1 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query70.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query70.groovy @@ -24,13 +24,47 @@ suite("query70") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + sum(ss_net_profit) as total_sum + ,s_state + ,s_county + ,grouping(s_state)+grouping(s_county) as lochierarchy + ,rank() over ( + partition by grouping(s_state)+grouping(s_county), + case when grouping(s_county) = 0 then s_state end + order by sum(ss_net_profit) desc) as rank_within_parent + from + store_sales + ,date_dim d1 + ,store + where + d1.d_month_seq between 1220 and 1220+11 + and d1.d_date_sk = ss_sold_date_sk + and s_store_sk = ss_store_sk + and s_state in + ( select s_state + from (select s_state as s_state, + rank() over ( partition by s_state order by sum(ss_net_profit) desc) as ranking + from store_sales, store, date_dim + where d_month_seq between 1220 and 1220+11 + and d_date_sk = ss_sold_date_sk + and s_store_sk = ss_store_sk + group by s_state + ) tmp1 + where ranking <= 5 + ) + group by rollup(s_state,s_county) + order by + lochierarchy desc + ,case when lochierarchy = 0 then s_state end + ,rank_within_parent + limit 100""" qt_ds_shape_70 ''' explain shape plan select @@ -67,7 +101,6 @@ sql 'set enable_runtime_filter_prune=false' lochierarchy desc ,case when lochierarchy = 0 then s_state end ,rank_within_parent - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query71.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query71.groovy index 586792c78c020e..667a9a5a5ff1b9 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query71.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query71.groovy @@ -24,13 +24,49 @@ suite("query71") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_brand_id brand_id, i_brand brand,t_hour,t_minute, + sum(ext_price) ext_price + from item, (select ws_ext_sales_price as ext_price, + ws_sold_date_sk as sold_date_sk, + ws_item_sk as sold_item_sk, + ws_sold_time_sk as time_sk + from web_sales,date_dim + where d_date_sk = ws_sold_date_sk + and d_moy=12 + and d_year=2002 + union all + select cs_ext_sales_price as ext_price, + cs_sold_date_sk as sold_date_sk, + cs_item_sk as sold_item_sk, + cs_sold_time_sk as time_sk + from catalog_sales,date_dim + where d_date_sk = cs_sold_date_sk + and d_moy=12 + and d_year=2002 + union all + select ss_ext_sales_price as ext_price, + ss_sold_date_sk as sold_date_sk, + ss_item_sk as sold_item_sk, + ss_sold_time_sk as time_sk + from store_sales,date_dim + where d_date_sk = ss_sold_date_sk + and d_moy=12 + and d_year=2002 + ) tmp,time_dim + where + sold_item_sk = i_item_sk + and i_manager_id=1 + and time_sk = t_time_sk + and (t_meal_time = 'breakfast' or t_meal_time = 'dinner') + group by i_brand, i_brand_id,t_hour,t_minute + order by ext_price desc, i_brand_id + """ qt_ds_shape_71 ''' explain shape plan select i_brand_id brand_id, i_brand brand,t_hour,t_minute, @@ -69,7 +105,6 @@ sql 'set enable_runtime_filter_prune=false' and (t_meal_time = 'breakfast' or t_meal_time = 'dinner') group by i_brand, i_brand_id,t_hour,t_minute order by ext_price desc, i_brand_id - ; - + ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query72.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query72.groovy index f7399d5fc05ef5..a01c328adb39cb 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query72.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query72.groovy @@ -24,13 +24,38 @@ suite("query72") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_item_desc + ,w_warehouse_name + ,d1.d_week_seq + ,sum(case when p_promo_sk is null then 1 else 0 end) no_promo + ,sum(case when p_promo_sk is not null then 1 else 0 end) promo + ,count(*) total_cnt +from catalog_sales +join inventory on (cs_item_sk = inv_item_sk) +join warehouse on (w_warehouse_sk=inv_warehouse_sk) +join item on (i_item_sk = cs_item_sk) +join customer_demographics on (cs_bill_cdemo_sk = cd_demo_sk) +join household_demographics on (cs_bill_hdemo_sk = hd_demo_sk) +join date_dim d1 on (cs_sold_date_sk = d1.d_date_sk) +join date_dim d2 on (inv_date_sk = d2.d_date_sk) +join date_dim d3 on (cs_ship_date_sk = d3.d_date_sk) +left outer join promotion on (cs_promo_sk=p_promo_sk) +left outer join catalog_returns on (cr_item_sk = cs_item_sk and cr_order_number = cs_order_number) +where d1.d_week_seq = d2.d_week_seq + and inv_quantity_on_hand < cs_quantity + and (d3.d_date > (d1.d_date + INTERVAL '5' DAY)) + and hd_buy_potential = '1001-5000' + and d1.d_year = 1998 + and cd_marital_status = 'S' +group by i_item_desc,w_warehouse_name,d1.d_week_seq +order by total_cnt desc, i_item_desc, w_warehouse_name, d_week_seq +limit 100""" qt_ds_shape_72 ''' explain shape plan select i_item_desc @@ -58,7 +83,6 @@ where d1.d_week_seq = d2.d_week_seq and cd_marital_status = 'S' group by i_item_desc,w_warehouse_name,d1.d_week_seq order by total_cnt desc, i_item_desc, w_warehouse_name, d_week_seq -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query73.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query73.groovy index 2525e19916fe7d..525a259de0b45f 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query73.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query73.groovy @@ -24,13 +24,37 @@ suite("query73") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select c_last_name + ,c_first_name + ,c_salutation + ,c_preferred_cust_flag + ,ss_ticket_number + ,cnt from + (select ss_ticket_number + ,ss_customer_sk + ,count(*) cnt + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and date_dim.d_dom between 1 and 2 + and (household_demographics.hd_buy_potential = '1001-5000' or + household_demographics.hd_buy_potential = '5001-10000') + and household_demographics.hd_vehicle_count > 0 + and case when household_demographics.hd_vehicle_count > 0 then + household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count else null end > 1 + and date_dim.d_year in (2000,2000+1,2000+2) + and store.s_county in ('Williamson County','Williamson County','Williamson County','Williamson County') + group by ss_ticket_number,ss_customer_sk) dj,customer + where ss_customer_sk = c_customer_sk + and cnt between 1 and 5 + order by cnt desc, c_last_name asc""" qt_ds_shape_73 ''' explain shape plan select c_last_name @@ -57,7 +81,6 @@ sql 'set enable_runtime_filter_prune=false' group by ss_ticket_number,ss_customer_sk) dj,customer where ss_customer_sk = c_customer_sk and cnt between 1 and 5 - order by cnt desc, c_last_name asc; - + order by cnt desc, c_last_name asc ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query74.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query74.groovy index 880b996ab32c8e..e6db1db2239f74 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query74.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query74.groovy @@ -24,13 +24,70 @@ suite("query74") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,d_year as year + ,max(ss_net_paid) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + and d_year in (1999,1999+1) + group by c_customer_id + ,c_first_name + ,c_last_name + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,d_year as year + ,max(ws_net_paid) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + and d_year in (1999,1999+1) + group by c_customer_id + ,c_first_name + ,c_last_name + ,d_year + ) + select + t_s_secyear.customer_id, t_s_secyear.customer_first_name, t_s_secyear.customer_last_name + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.year = 1999 + and t_s_secyear.year = 1999+1 + and t_w_firstyear.year = 1999 + and t_w_secyear.year = 1999+1 + and t_s_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end + order by 1,3,2 +limit 100""" qt_ds_shape_74 ''' explain shape plan with year_total as ( @@ -90,7 +147,6 @@ sql 'set enable_runtime_filter_prune=false' and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end order by 1,3,2 -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query75.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query75.groovy index 15ee1f53f64a7d..d38b46371ff1c8 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query75.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query75.groovy @@ -24,13 +24,79 @@ suite("query75") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """WITH all_sales AS ( + SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,SUM(sales_cnt) AS sales_cnt + ,SUM(sales_amt) AS sales_amt + FROM (SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,cs_quantity - COALESCE(cr_return_quantity,0) AS sales_cnt + ,cs_ext_sales_price - COALESCE(cr_return_amount,0.0) AS sales_amt + FROM catalog_sales JOIN item ON i_item_sk=cs_item_sk + JOIN date_dim ON d_date_sk=cs_sold_date_sk + LEFT JOIN catalog_returns ON (cs_order_number=cr_order_number + AND cs_item_sk=cr_item_sk) + WHERE i_category='Sports' + UNION + SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,ss_quantity - COALESCE(sr_return_quantity,0) AS sales_cnt + ,ss_ext_sales_price - COALESCE(sr_return_amt,0.0) AS sales_amt + FROM store_sales JOIN item ON i_item_sk=ss_item_sk + JOIN date_dim ON d_date_sk=ss_sold_date_sk + LEFT JOIN store_returns ON (ss_ticket_number=sr_ticket_number + AND ss_item_sk=sr_item_sk) + WHERE i_category='Sports' + UNION + SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,ws_quantity - COALESCE(wr_return_quantity,0) AS sales_cnt + ,ws_ext_sales_price - COALESCE(wr_return_amt,0.0) AS sales_amt + FROM web_sales JOIN item ON i_item_sk=ws_item_sk + JOIN date_dim ON d_date_sk=ws_sold_date_sk + LEFT JOIN web_returns ON (ws_order_number=wr_order_number + AND ws_item_sk=wr_item_sk) + WHERE i_category='Sports') sales_detail + GROUP BY d_year, i_brand_id, i_class_id, i_category_id, i_manufact_id) + SELECT prev_yr.d_year AS prev_year + ,curr_yr.d_year AS year + ,curr_yr.i_brand_id + ,curr_yr.i_class_id + ,curr_yr.i_category_id + ,curr_yr.i_manufact_id + ,prev_yr.sales_cnt AS prev_yr_cnt + ,curr_yr.sales_cnt AS curr_yr_cnt + ,curr_yr.sales_cnt-prev_yr.sales_cnt AS sales_cnt_diff + ,curr_yr.sales_amt-prev_yr.sales_amt AS sales_amt_diff + FROM all_sales curr_yr, all_sales prev_yr + WHERE curr_yr.i_brand_id=prev_yr.i_brand_id + AND curr_yr.i_class_id=prev_yr.i_class_id + AND curr_yr.i_category_id=prev_yr.i_category_id + AND curr_yr.i_manufact_id=prev_yr.i_manufact_id + AND curr_yr.d_year=2002 + AND prev_yr.d_year=2002-1 + AND CAST(curr_yr.sales_cnt AS DECIMAL(17,2))/CAST(prev_yr.sales_cnt AS DECIMAL(17,2))<0.9 + ORDER BY sales_cnt_diff,sales_amt_diff + limit 100""" qt_ds_shape_75 ''' explain shape plan WITH all_sales AS ( @@ -99,7 +165,6 @@ sql 'set enable_runtime_filter_prune=false' AND prev_yr.d_year=2002-1 AND CAST(curr_yr.sales_cnt AS DECIMAL(17,2))/CAST(prev_yr.sales_cnt AS DECIMAL(17,2))<0.9 ORDER BY sales_cnt_diff,sales_amt_diff - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query76.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query76.groovy index 10c70573ce56d8..c4ad3be83924bb 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query76.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query76.groovy @@ -24,13 +24,33 @@ suite("query76") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select channel, col_name, d_year, d_qoy, i_category, COUNT(*) sales_cnt, SUM(ext_sales_price) sales_amt FROM ( + SELECT 'store' as channel, 'ss_customer_sk' col_name, d_year, d_qoy, i_category, ss_ext_sales_price ext_sales_price + FROM store_sales, item, date_dim + WHERE ss_customer_sk IS NULL + AND ss_sold_date_sk=d_date_sk + AND ss_item_sk=i_item_sk + UNION ALL + SELECT 'web' as channel, 'ws_promo_sk' col_name, d_year, d_qoy, i_category, ws_ext_sales_price ext_sales_price + FROM web_sales, item, date_dim + WHERE ws_promo_sk IS NULL + AND ws_sold_date_sk=d_date_sk + AND ws_item_sk=i_item_sk + UNION ALL + SELECT 'catalog' as channel, 'cs_bill_customer_sk' col_name, d_year, d_qoy, i_category, cs_ext_sales_price ext_sales_price + FROM catalog_sales, item, date_dim + WHERE cs_bill_customer_sk IS NULL + AND cs_sold_date_sk=d_date_sk + AND cs_item_sk=i_item_sk) foo +GROUP BY channel, col_name, d_year, d_qoy, i_category +ORDER BY channel, col_name, d_year, d_qoy, i_category +limit 100""" qt_ds_shape_76 ''' explain shape plan select channel, col_name, d_year, d_qoy, i_category, COUNT(*) sales_cnt, SUM(ext_sales_price) sales_amt FROM ( @@ -53,7 +73,6 @@ sql 'set enable_runtime_filter_prune=false' AND cs_item_sk=i_item_sk) foo GROUP BY channel, col_name, d_year, d_qoy, i_category ORDER BY channel, col_name, d_year, d_qoy, i_category -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query77.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query77.groovy index 7380f682087b15..d45e6bb1545ab9 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query77.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query77.groovy @@ -24,13 +24,117 @@ suite("query77") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ss as + (select s_store_sk, + sum(ss_ext_sales_price) as sales, + sum(ss_net_profit) as profit + from store_sales, + date_dim, + store + where ss_sold_date_sk = d_date_sk + and d_date between cast('2000-08-10' as date) + and (cast('2000-08-10' as date) + interval 30 day) + and ss_store_sk = s_store_sk + group by s_store_sk) + , + sr as + (select s_store_sk, + sum(sr_return_amt) as returns, + sum(sr_net_loss) as profit_loss + from store_returns, + date_dim, + store + where sr_returned_date_sk = d_date_sk + and d_date between cast('2000-08-10' as date) + and (cast('2000-08-10' as date) + interval 30 day) + and sr_store_sk = s_store_sk + group by s_store_sk), + cs as + (select cs_call_center_sk, + sum(cs_ext_sales_price) as sales, + sum(cs_net_profit) as profit + from catalog_sales, + date_dim + where cs_sold_date_sk = d_date_sk + and d_date between cast('2000-08-10' as date) + and (cast('2000-08-10' as date) + interval 30 day) + group by cs_call_center_sk + ), + cr as + (select cr_call_center_sk, + sum(cr_return_amount) as returns, + sum(cr_net_loss) as profit_loss + from catalog_returns, + date_dim + where cr_returned_date_sk = d_date_sk + and d_date between cast('2000-08-10' as date) + and (cast('2000-08-10' as date) + interval 30 day) + group by cr_call_center_sk + ), + ws as + ( select wp_web_page_sk, + sum(ws_ext_sales_price) as sales, + sum(ws_net_profit) as profit + from web_sales, + date_dim, + web_page + where ws_sold_date_sk = d_date_sk + and d_date between cast('2000-08-10' as date) + and (cast('2000-08-10' as date) + interval 30 day) + and ws_web_page_sk = wp_web_page_sk + group by wp_web_page_sk), + wr as + (select wp_web_page_sk, + sum(wr_return_amt) as returns, + sum(wr_net_loss) as profit_loss + from web_returns, + date_dim, + web_page + where wr_returned_date_sk = d_date_sk + and d_date between cast('2000-08-10' as date) + and (cast('2000-08-10' as date) + interval 30 day) + and wr_web_page_sk = wp_web_page_sk + group by wp_web_page_sk) + select channel + , id + , sum(sales) as sales + , sum(returns) as returns + , sum(profit) as profit + from + (select 'store channel' as channel + , ss.s_store_sk as id + , sales + , coalesce(returns, 0) as returns + , (profit - coalesce(profit_loss,0)) as profit + from ss left join sr + on ss.s_store_sk = sr.s_store_sk + union all + select 'catalog channel' as channel + , cs_call_center_sk as id + , sales + , returns + , (profit - profit_loss) as profit + from cs + , cr + union all + select 'web channel' as channel + , ws.wp_web_page_sk as id + , sales + , coalesce(returns, 0) returns + , (profit - coalesce(profit_loss,0)) as profit + from ws left join wr + on ws.wp_web_page_sk = wr.wp_web_page_sk + ) x + group by rollup (channel, id) + order by channel + ,id + limit 100""" qt_ds_shape_77 ''' explain shape plan with ss as @@ -137,7 +241,6 @@ sql 'set enable_runtime_filter_prune=false' group by rollup (channel, id) order by channel ,id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query78.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query78.groovy index b8a269e5978b64..adc3ae2027eb3a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query78.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query78.groovy @@ -24,13 +24,67 @@ suite("query78") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ws as + (select d_year AS ws_sold_year, ws_item_sk, + ws_bill_customer_sk ws_customer_sk, + sum(ws_quantity) ws_qty, + sum(ws_wholesale_cost) ws_wc, + sum(ws_sales_price) ws_sp + from web_sales + left join web_returns on wr_order_number=ws_order_number and ws_item_sk=wr_item_sk + join date_dim on ws_sold_date_sk = d_date_sk + where wr_order_number is null and d_year=1998 + group by d_year, ws_item_sk, ws_bill_customer_sk + ), +cs as + (select d_year AS cs_sold_year, cs_item_sk, + cs_bill_customer_sk cs_customer_sk, + sum(cs_quantity) cs_qty, + sum(cs_wholesale_cost) cs_wc, + sum(cs_sales_price) cs_sp + from catalog_sales + left join catalog_returns on cr_order_number=cs_order_number and cs_item_sk=cr_item_sk + join date_dim on cs_sold_date_sk = d_date_sk + where cr_order_number is null and d_year=1998 + group by d_year, cs_item_sk, cs_bill_customer_sk + ), +ss as + (select d_year AS ss_sold_year, ss_item_sk, + ss_customer_sk, + sum(ss_quantity) ss_qty, + sum(ss_wholesale_cost) ss_wc, + sum(ss_sales_price) ss_sp + from store_sales + left join store_returns on sr_ticket_number=ss_ticket_number and ss_item_sk=sr_item_sk + join date_dim on ss_sold_date_sk = d_date_sk + where sr_ticket_number is null and d_year=1998 + group by d_year, ss_item_sk, ss_customer_sk + ) +select +ss_customer_sk, +round(ss_qty/(coalesce(ws_qty,0)+coalesce(cs_qty,0)),2) ratio, +ss_qty store_qty, ss_wc store_wholesale_cost, ss_sp store_sales_price, +coalesce(ws_qty,0)+coalesce(cs_qty,0) other_chan_qty, +coalesce(ws_wc,0)+coalesce(cs_wc,0) other_chan_wholesale_cost, +coalesce(ws_sp,0)+coalesce(cs_sp,0) other_chan_sales_price +from ss +left join ws on (ws_sold_year=ss_sold_year and ws_item_sk=ss_item_sk and ws_customer_sk=ss_customer_sk) +left join cs on (cs_sold_year=ss_sold_year and cs_item_sk=ss_item_sk and cs_customer_sk=ss_customer_sk) +where (coalesce(ws_qty,0)>0 or coalesce(cs_qty, 0)>0) and ss_sold_year=1998 +order by + ss_customer_sk, + ss_qty desc, ss_wc desc, ss_sp desc, + other_chan_qty, + other_chan_wholesale_cost, + other_chan_sales_price, + ratio +limit 100""" qt_ds_shape_78 ''' explain shape plan with ws as @@ -87,7 +141,6 @@ order by other_chan_wholesale_cost, other_chan_sales_price, ratio -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query79.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query79.groovy index 25a2c3219f165a..0b3679060722c2 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query79.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query79.groovy @@ -24,13 +24,32 @@ suite("query79") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + c_last_name,c_first_name,substr(s_city,1,30),ss_ticket_number,amt,profit + from + (select ss_ticket_number + ,ss_customer_sk + ,store.s_city + ,sum(ss_coupon_amt) amt + ,sum(ss_net_profit) profit + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and (household_demographics.hd_dep_count = 7 or household_demographics.hd_vehicle_count > -1) + and date_dim.d_dow = 1 + and date_dim.d_year in (2000,2000+1,2000+2) + and store.s_number_employees between 200 and 295 + group by ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city) ms,customer + where ss_customer_sk = c_customer_sk + order by c_last_name,c_first_name,substr(s_city,1,30), profit +limit 100""" qt_ds_shape_79 ''' explain shape plan select @@ -52,7 +71,6 @@ sql 'set enable_runtime_filter_prune=false' group by ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city) ms,customer where ss_customer_sk = c_customer_sk order by c_last_name,c_first_name,substr(s_city,1,30), profit -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query8.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query8.groovy index 80d79ca747257b..301736c4dfa277 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query8.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query8.groovy @@ -24,13 +24,117 @@ suite("query8") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select s_store_name + ,sum(ss_net_profit) + from store_sales + ,date_dim + ,store, + (select ca_zip + from ( + SELECT substr(ca_zip,1,5) ca_zip + FROM customer_address + WHERE substr(ca_zip,1,5) IN ( + '47602','16704','35863','28577','83910','36201', + '58412','48162','28055','41419','80332', + '38607','77817','24891','16226','18410', + '21231','59345','13918','51089','20317', + '17167','54585','67881','78366','47770', + '18360','51717','73108','14440','21800', + '89338','45859','65501','34948','25973', + '73219','25333','17291','10374','18829', + '60736','82620','41351','52094','19326', + '25214','54207','40936','21814','79077', + '25178','75742','77454','30621','89193', + '27369','41232','48567','83041','71948', + '37119','68341','14073','16891','62878', + '49130','19833','24286','27700','40979', + '50412','81504','94835','84844','71954', + '39503','57649','18434','24987','12350', + '86379','27413','44529','98569','16515', + '27287','24255','21094','16005','56436', + '91110','68293','56455','54558','10298', + '83647','32754','27052','51766','19444', + '13869','45645','94791','57631','20712', + '37788','41807','46507','21727','71836', + '81070','50632','88086','63991','20244', + '31655','51782','29818','63792','68605', + '94898','36430','57025','20601','82080', + '33869','22728','35834','29086','92645', + '98584','98072','11652','78093','57553', + '43830','71144','53565','18700','90209', + '71256','38353','54364','28571','96560', + '57839','56355','50679','45266','84680', + '34306','34972','48530','30106','15371', + '92380','84247','92292','68852','13338', + '34594','82602','70073','98069','85066', + '47289','11686','98862','26217','47529', + '63294','51793','35926','24227','14196', + '24594','32489','99060','49472','43432', + '49211','14312','88137','47369','56877', + '20534','81755','15794','12318','21060', + '73134','41255','63073','81003','73873', + '66057','51184','51195','45676','92696', + '70450','90669','98338','25264','38919', + '59226','58581','60298','17895','19489', + '52301','80846','95464','68770','51634', + '19988','18367','18421','11618','67975', + '25494','41352','95430','15734','62585', + '97173','33773','10425','75675','53535', + '17879','41967','12197','67998','79658', + '59130','72592','14851','43933','68101', + '50636','25717','71286','24660','58058', + '72991','95042','15543','33122','69280', + '11912','59386','27642','65177','17672', + '33467','64592','36335','54010','18767', + '63193','42361','49254','33113','33159', + '36479','59080','11855','81963','31016', + '49140','29392','41836','32958','53163', + '13844','73146','23952','65148','93498', + '14530','46131','58454','13376','13378', + '83986','12320','17193','59852','46081', + '98533','52389','13086','68843','31013', + '13261','60560','13443','45533','83583', + '11489','58218','19753','22911','25115', + '86709','27156','32669','13123','51933', + '39214','41331','66943','14155','69998', + '49101','70070','35076','14242','73021', + '59494','15782','29752','37914','74686', + '83086','34473','15751','81084','49230', + '91894','60624','17819','28810','63180', + '56224','39459','55233','75752','43639', + '55349','86057','62361','50788','31830', + '58062','18218','85761','60083','45484', + '21204','90229','70041','41162','35390', + '16364','39500','68908','26689','52868', + '81335','40146','11340','61527','61794', + '71997','30415','59004','29450','58117', + '69952','33562','83833','27385','61860', + '96435','48333','23065','32961','84919', + '61997','99132','22815','56600','68730', + '48017','95694','32919','88217','27116', + '28239','58032','18884','16791','21343', + '97462','18569','75660','15475') + intersect + select ca_zip + from (SELECT substr(ca_zip,1,5) ca_zip,count(*) cnt + FROM customer_address, customer + WHERE ca_address_sk = c_current_addr_sk and + c_preferred_cust_flag='Y' + group by ca_zip + having count(*) > 10)A1)A2) V1 + where ss_store_sk = s_store_sk + and ss_sold_date_sk = d_date_sk + and d_qoy = 2 and d_year = 1998 + and (substr(s_zip,1,2) = substr(V1.ca_zip,1,2)) + group by s_store_name + order by s_store_name + limit 100""" qt_ds_shape_8 ''' explain shape plan select s_store_name @@ -137,7 +241,6 @@ sql 'set enable_runtime_filter_prune=false' and (substr(s_zip,1,2) = substr(V1.ca_zip,1,2)) group by s_store_name order by s_store_name - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query80.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query80.groovy index 986ca100821481..4a78451d5ece76 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query80.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query80.groovy @@ -24,13 +24,105 @@ suite("query80") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ssr as + (select s_store_id as store_id, + sum(ss_ext_sales_price) as sales, + sum(coalesce(sr_return_amt, 0)) as returns, + sum(ss_net_profit - coalesce(sr_net_loss, 0)) as profit + from store_sales left outer join store_returns on + (ss_item_sk = sr_item_sk and ss_ticket_number = sr_ticket_number), + date_dim, + store, + item, + promotion + where ss_sold_date_sk = d_date_sk + and d_date between cast('2002-08-14' as date) + and (cast('2002-08-14' as date) + interval 30 day) + and ss_store_sk = s_store_sk + and ss_item_sk = i_item_sk + and i_current_price > 50 + and ss_promo_sk = p_promo_sk + and p_channel_tv = 'N' + group by s_store_id) + , + csr as + (select cp_catalog_page_id as catalog_page_id, + sum(cs_ext_sales_price) as sales, + sum(coalesce(cr_return_amount, 0)) as returns, + sum(cs_net_profit - coalesce(cr_net_loss, 0)) as profit + from catalog_sales left outer join catalog_returns on + (cs_item_sk = cr_item_sk and cs_order_number = cr_order_number), + date_dim, + catalog_page, + item, + promotion + where cs_sold_date_sk = d_date_sk + and d_date between cast('2002-08-14' as date) + and (cast('2002-08-14' as date) + interval 30 day) + and cs_catalog_page_sk = cp_catalog_page_sk + and cs_item_sk = i_item_sk + and i_current_price > 50 + and cs_promo_sk = p_promo_sk + and p_channel_tv = 'N' +group by cp_catalog_page_id) + , + wsr as + (select web_site_id, + sum(ws_ext_sales_price) as sales, + sum(coalesce(wr_return_amt, 0)) as returns, + sum(ws_net_profit - coalesce(wr_net_loss, 0)) as profit + from web_sales left outer join web_returns on + (ws_item_sk = wr_item_sk and ws_order_number = wr_order_number), + date_dim, + web_site, + item, + promotion + where ws_sold_date_sk = d_date_sk + and d_date between cast('2002-08-14' as date) + and (cast('2002-08-14' as date) + interval 30 day) + and ws_web_site_sk = web_site_sk + and ws_item_sk = i_item_sk + and i_current_price > 50 + and ws_promo_sk = p_promo_sk + and p_channel_tv = 'N' +group by web_site_id) + select channel + , id + , sum(sales) as sales + , sum(returns) as returns + , sum(profit) as profit + from + (select 'store channel' as channel + , concat('store', store_id) as id + , sales + , returns + , profit + from ssr + union all + select 'catalog channel' as channel + , concat('catalog_page', catalog_page_id) as id + , sales + , returns + , profit + from csr + union all + select 'web channel' as channel + , concat('web_site', web_site_id) as id + , sales + , returns + , profit + from wsr + ) x + group by rollup (channel, id) + order by channel + ,id + limit 100""" qt_ds_shape_80 ''' explain shape plan with ssr as @@ -125,7 +217,6 @@ group by web_site_id) group by rollup (channel, id) order by channel ,id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query81.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query81.groovy index 5d26736a358e7a..7f24cbe89b5648 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query81.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query81.groovy @@ -24,13 +24,40 @@ suite("query81") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with customer_total_return as + (select cr_returning_customer_sk as ctr_customer_sk + ,ca_state as ctr_state, + sum(cr_return_amt_inc_tax) as ctr_total_return + from catalog_returns + ,date_dim + ,customer_address + where cr_returned_date_sk = d_date_sk + and d_year =2001 + and cr_returning_addr_sk = ca_address_sk + group by cr_returning_customer_sk + ,ca_state ) + select c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name + ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset + ,ca_location_type,ctr_total_return + from customer_total_return ctr1 + ,customer_address + ,customer + where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 + from customer_total_return ctr2 + where ctr1.ctr_state = ctr2.ctr_state) + and ca_address_sk = c_current_addr_sk + and ca_state = 'TN' + and ctr1.ctr_customer_sk = c_customer_sk + order by c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name + ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset + ,ca_location_type,ctr_total_return + limit 100""" qt_ds_shape_81 ''' explain shape plan with customer_total_return as @@ -60,7 +87,6 @@ sql 'set enable_runtime_filter_prune=false' order by c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset ,ca_location_type,ctr_total_return - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query82.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query82.groovy index adf6337e260339..b662f980595425 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query82.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query82.groovy @@ -24,13 +24,26 @@ suite("query82") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_item_id + ,i_item_desc + ,i_current_price + from item, inventory, date_dim, store_sales + where i_current_price between 58 and 58+30 + and inv_item_sk = i_item_sk + and d_date_sk=inv_date_sk + and d_date between cast('2001-01-13' as date) and (cast('2001-01-13' as date) + interval 60 day) + and i_manufact_id in (259,559,580,485) + and inv_quantity_on_hand between 100 and 500 + and ss_item_sk = i_item_sk + group by i_item_id,i_item_desc,i_current_price + order by i_item_id + limit 100""" qt_ds_shape_82 ''' explain shape plan select i_item_id @@ -46,7 +59,6 @@ sql 'set enable_runtime_filter_prune=false' and ss_item_sk = i_item_sk group by i_item_id,i_item_desc,i_current_price order by i_item_id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query83.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query83.groovy index ff082aaf17ea2f..570a2a769308fe 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query83.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query83.groovy @@ -24,13 +24,76 @@ suite("query83") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with sr_items as + (select i_item_id item_id, + sum(sr_return_quantity) sr_item_qty + from store_returns, + item, + date_dim + where sr_item_sk = i_item_sk + and d_date in + (select d_date + from date_dim + where d_week_seq in + (select d_week_seq + from date_dim + where d_date in ('2001-07-13','2001-09-10','2001-11-16'))) + and sr_returned_date_sk = d_date_sk + group by i_item_id), + cr_items as + (select i_item_id item_id, + sum(cr_return_quantity) cr_item_qty + from catalog_returns, + item, + date_dim + where cr_item_sk = i_item_sk + and d_date in + (select d_date + from date_dim + where d_week_seq in + (select d_week_seq + from date_dim + where d_date in ('2001-07-13','2001-09-10','2001-11-16'))) + and cr_returned_date_sk = d_date_sk + group by i_item_id), + wr_items as + (select i_item_id item_id, + sum(wr_return_quantity) wr_item_qty + from web_returns, + item, + date_dim + where wr_item_sk = i_item_sk + and d_date in + (select d_date + from date_dim + where d_week_seq in + (select d_week_seq + from date_dim + where d_date in ('2001-07-13','2001-09-10','2001-11-16'))) + and wr_returned_date_sk = d_date_sk + group by i_item_id) + select sr_items.item_id + ,sr_item_qty + ,sr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 sr_dev + ,cr_item_qty + ,cr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 cr_dev + ,wr_item_qty + ,wr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 wr_dev + ,(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 average + from sr_items + ,cr_items + ,wr_items + where sr_items.item_id=cr_items.item_id + and sr_items.item_id=wr_items.item_id + order by sr_items.item_id + ,sr_item_qty + limit 100""" qt_ds_shape_83 ''' explain shape plan with sr_items as @@ -96,7 +159,6 @@ sql 'set enable_runtime_filter_prune=false' and sr_items.item_id=wr_items.item_id order by sr_items.item_id ,sr_item_qty - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query84.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query84.groovy index 6443ad1ee3c19a..91ededbaddd0d4 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query84.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query84.groovy @@ -24,13 +24,30 @@ suite("query84") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select c_customer_id as customer_id + , concat(concat(coalesce(c_last_name,''), ','), coalesce(c_first_name,'')) as customername + from customer + ,customer_address + ,customer_demographics + ,household_demographics + ,income_band + ,store_returns + where ca_city = 'Woodland' + and c_current_addr_sk = ca_address_sk + and ib_lower_bound >= 60306 + and ib_upper_bound <= 60306 + 50000 + and ib_income_band_sk = hd_income_band_sk + and cd_demo_sk = c_current_cdemo_sk + and hd_demo_sk = c_current_hdemo_sk + and sr_cdemo_sk = cd_demo_sk + order by c_customer_id + limit 100""" qt_ds_shape_84 ''' explain shape plan select c_customer_id as customer_id @@ -50,7 +67,6 @@ sql 'set enable_runtime_filter_prune=false' and hd_demo_sk = c_current_hdemo_sk and sr_cdemo_sk = cd_demo_sk order by c_customer_id - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query85.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query85.groovy index af5f17b3c26880..7ecc82369a88b3 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query85.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query85.groovy @@ -24,13 +24,93 @@ suite("query85") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select substr(r_reason_desc,1,20) + ,avg(ws_quantity) + ,avg(wr_refunded_cash) + ,avg(wr_fee) + from web_sales, web_returns, web_page, customer_demographics cd1, + customer_demographics cd2, customer_address, date_dim, reason + where ws_web_page_sk = wp_web_page_sk + and ws_item_sk = wr_item_sk + and ws_order_number = wr_order_number + and ws_sold_date_sk = d_date_sk and d_year = 1998 + and cd1.cd_demo_sk = wr_refunded_cdemo_sk + and cd2.cd_demo_sk = wr_returning_cdemo_sk + and ca_address_sk = wr_refunded_addr_sk + and r_reason_sk = wr_reason_sk + and + ( + ( + cd1.cd_marital_status = 'D' + and + cd1.cd_marital_status = cd2.cd_marital_status + and + cd1.cd_education_status = 'Primary' + and + cd1.cd_education_status = cd2.cd_education_status + and + ws_sales_price between 100.00 and 150.00 + ) + or + ( + cd1.cd_marital_status = 'S' + and + cd1.cd_marital_status = cd2.cd_marital_status + and + cd1.cd_education_status = 'College' + and + cd1.cd_education_status = cd2.cd_education_status + and + ws_sales_price between 50.00 and 100.00 + ) + or + ( + cd1.cd_marital_status = 'U' + and + cd1.cd_marital_status = cd2.cd_marital_status + and + cd1.cd_education_status = 'Advanced Degree' + and + cd1.cd_education_status = cd2.cd_education_status + and + ws_sales_price between 150.00 and 200.00 + ) + ) + and + ( + ( + ca_country = 'United States' + and + ca_state in ('NC', 'TX', 'IA') + and ws_net_profit between 100 and 200 + ) + or + ( + ca_country = 'United States' + and + ca_state in ('WI', 'WV', 'GA') + and ws_net_profit between 150 and 300 + ) + or + ( + ca_country = 'United States' + and + ca_state in ('OK', 'VA', 'KY') + and ws_net_profit between 50 and 250 + ) + ) +group by r_reason_desc +order by substr(r_reason_desc,1,20) + ,avg(ws_quantity) + ,avg(wr_refunded_cash) + ,avg(wr_fee) +limit 100""" qt_ds_shape_85 ''' explain shape plan select substr(r_reason_desc,1,20) @@ -113,7 +193,6 @@ order by substr(r_reason_desc,1,20) ,avg(ws_quantity) ,avg(wr_refunded_cash) ,avg(wr_fee) -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query86.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query86.groovy index 835735e4e37b72..57557c327d4905 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query86.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query86.groovy @@ -24,13 +24,35 @@ suite("query86") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + sum(ws_net_paid) as total_sum + ,i_category + ,i_class + ,grouping(i_category)+grouping(i_class) as lochierarchy + ,rank() over ( + partition by grouping(i_category)+grouping(i_class), + case when grouping(i_class) = 0 then i_category end + order by sum(ws_net_paid) desc) as rank_within_parent + from + web_sales + ,date_dim d1 + ,item + where + d1.d_month_seq between 1186 and 1186+11 + and d1.d_date_sk = ws_sold_date_sk + and i_item_sk = ws_item_sk + group by rollup(i_category,i_class) + order by + lochierarchy desc, + case when lochierarchy = 0 then i_category end, + rank_within_parent + limit 100""" qt_ds_shape_86 ''' explain shape plan select @@ -55,7 +77,6 @@ sql 'set enable_runtime_filter_prune=false' lochierarchy desc, case when lochierarchy = 0 then i_category end, rank_within_parent - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query87.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query87.groovy index 186b8d764bd945..a4abcae1a76a8a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query87.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query87.groovy @@ -24,13 +24,32 @@ suite("query87") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select count(*) +from ((select distinct c_last_name, c_first_name, d_date + from store_sales, date_dim, customer + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_customer_sk = customer.c_customer_sk + and d_month_seq between 1202 and 1202+11) + except + (select distinct c_last_name, c_first_name, d_date + from catalog_sales, date_dim, customer + where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk + and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1202 and 1202+11) + except + (select distinct c_last_name, c_first_name, d_date + from web_sales, date_dim, customer + where web_sales.ws_sold_date_sk = date_dim.d_date_sk + and web_sales.ws_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1202 and 1202+11) +) cool_cust +""" qt_ds_shape_87 ''' explain shape plan select count(*) @@ -52,7 +71,6 @@ from ((select distinct c_last_name, c_first_name, d_date and web_sales.ws_bill_customer_sk = customer.c_customer_sk and d_month_seq between 1202 and 1202+11) ) cool_cust -; ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query88.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query88.groovy index d832e49b8f6adc..14a8ae12c394c6 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query88.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query88.groovy @@ -24,13 +24,103 @@ suite("query88") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select * +from + (select count(*) h8_30_to_9 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 8 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or + (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) + and store.s_store_name = 'ese') s1, + (select count(*) h9_to_9_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 9 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or + (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) + and store.s_store_name = 'ese') s2, + (select count(*) h9_30_to_10 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 9 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or + (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) + and store.s_store_name = 'ese') s3, + (select count(*) h10_to_10_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 10 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or + (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) + and store.s_store_name = 'ese') s4, + (select count(*) h10_30_to_11 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 10 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or + (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) + and store.s_store_name = 'ese') s5, + (select count(*) h11_to_11_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 11 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or + (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) + and store.s_store_name = 'ese') s6, + (select count(*) h11_30_to_12 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 11 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or + (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) + and store.s_store_name = 'ese') s7, + (select count(*) h12_to_12_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 12 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or + (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) + and store.s_store_name = 'ese') s8 +""" qt_ds_shape_88 ''' explain shape plan select * @@ -123,7 +213,6 @@ from (household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) and store.s_store_name = 'ese') s8 -; ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query89.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query89.groovy index d1b0ff393adaca..65a2b80a3d98b4 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query89.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query89.groovy @@ -24,13 +24,37 @@ suite("query89") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select * +from( +select i_category, i_class, i_brand, + s_store_name, s_company_name, + d_moy, + sum(ss_sales_price) sum_sales, + avg(sum(ss_sales_price)) over + (partition by i_category, i_brand, s_store_name, s_company_name) + avg_monthly_sales +from item, store_sales, date_dim, store +where ss_item_sk = i_item_sk and + ss_sold_date_sk = d_date_sk and + ss_store_sk = s_store_sk and + d_year in (2001) and + ((i_category in ('Books','Children','Electronics') and + i_class in ('history','school-uniforms','audio') + ) + or (i_category in ('Men','Sports','Shoes') and + i_class in ('pants','tennis','womens') + )) +group by i_category, i_class, i_brand, + s_store_name, s_company_name, d_moy) tmp1 +where case when (avg_monthly_sales <> 0) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null end > 0.1 +order by sum_sales - avg_monthly_sales, s_store_name +limit 100""" qt_ds_shape_89 ''' explain shape plan select * @@ -57,7 +81,6 @@ group by i_category, i_class, i_brand, s_store_name, s_company_name, d_moy) tmp1 where case when (avg_monthly_sales <> 0) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null end > 0.1 order by sum_sales - avg_monthly_sales, s_store_name -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query9.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query9.groovy index bbc6a07443621a..6e0edf4376c8e9 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query9.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query9.groovy @@ -24,13 +24,60 @@ suite("query9") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select case when (select count(*) + from store_sales + where ss_quantity between 1 and 20) > 1071 + then (select avg(ss_ext_tax) + from store_sales + where ss_quantity between 1 and 20) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 1 and 20) end bucket1 , + case when (select count(*) + from store_sales + where ss_quantity between 21 and 40) > 39161 + then (select avg(ss_ext_tax) + from store_sales + where ss_quantity between 21 and 40) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 21 and 40) end bucket2, + case when (select count(*) + from store_sales + where ss_quantity between 41 and 60) > 29434 + then (select avg(ss_ext_tax) + from store_sales + where ss_quantity between 41 and 60) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 41 and 60) end bucket3, + case when (select count(*) + from store_sales + where ss_quantity between 61 and 80) > 6568 + then (select avg(ss_ext_tax) + from store_sales + where ss_quantity between 61 and 80) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 61 and 80) end bucket4, + case when (select count(*) + from store_sales + where ss_quantity between 81 and 100) > 21216 + then (select avg(ss_ext_tax) + from store_sales + where ss_quantity between 81 and 100) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 81 and 100) end bucket5 +from reason +where r_reason_sk = 1 +""" qt_ds_shape_9 ''' explain shape plan select case when (select count(*) @@ -80,7 +127,6 @@ sql 'set enable_runtime_filter_prune=false' where ss_quantity between 81 and 100) end bucket5 from reason where r_reason_sk = 1 -; ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query90.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query90.groovy index f4246427598efe..36f7a904282cf4 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query90.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query90.groovy @@ -24,13 +24,31 @@ suite("query90") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select cast(amc as decimal(15,4))/cast(pmc as decimal(15,4)) am_pm_ratio + from ( select count(*) amc + from web_sales, household_demographics , time_dim, web_page + where ws_sold_time_sk = time_dim.t_time_sk + and ws_ship_hdemo_sk = household_demographics.hd_demo_sk + and ws_web_page_sk = web_page.wp_web_page_sk + and time_dim.t_hour between 12 and 12+1 + and household_demographics.hd_dep_count = 6 + and web_page.wp_char_count between 5000 and 5200) at, + ( select count(*) pmc + from web_sales, household_demographics , time_dim, web_page + where ws_sold_time_sk = time_dim.t_time_sk + and ws_ship_hdemo_sk = household_demographics.hd_demo_sk + and ws_web_page_sk = web_page.wp_web_page_sk + and time_dim.t_hour between 14 and 14+1 + and household_demographics.hd_dep_count = 6 + and web_page.wp_char_count between 5000 and 5200) pt + order by am_pm_ratio + limit 100""" qt_ds_shape_90 ''' explain shape plan select cast(amc as decimal(15,4))/cast(pmc as decimal(15,4)) am_pm_ratio @@ -51,7 +69,6 @@ sql 'set enable_runtime_filter_prune=false' and household_demographics.hd_dep_count = 6 and web_page.wp_char_count between 5000 and 5200) pt order by am_pm_ratio - limit 100; - + limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query91.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query91.groovy index d6466a783c2b90..2e56a09692553d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query91.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query91.groovy @@ -24,13 +24,40 @@ suite("query91") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + cc_call_center_id Call_Center, + cc_name Call_Center_Name, + cc_manager Manager, + sum(cr_net_loss) Returns_Loss +from + call_center, + catalog_returns, + date_dim, + customer, + customer_address, + customer_demographics, + household_demographics +where + cr_call_center_sk = cc_call_center_sk +and cr_returned_date_sk = d_date_sk +and cr_returning_customer_sk= c_customer_sk +and cd_demo_sk = c_current_cdemo_sk +and hd_demo_sk = c_current_hdemo_sk +and ca_address_sk = c_current_addr_sk +and d_year = 2000 +and d_moy = 12 +and ( (cd_marital_status = 'M' and cd_education_status = 'Unknown') + or(cd_marital_status = 'W' and cd_education_status = 'Advanced Degree')) +and hd_buy_potential like 'Unknown%' +and ca_gmt_offset = -7 +group by cc_call_center_id,cc_name,cc_manager,cd_marital_status,cd_education_status +order by sum(cr_net_loss) desc""" qt_ds_shape_91 ''' explain shape plan select @@ -60,7 +87,6 @@ and ( (cd_marital_status = 'M' and cd_education_status = 'Unknown' and hd_buy_potential like 'Unknown%' and ca_gmt_offset = -7 group by cc_call_center_id,cc_name,cc_manager,cd_marital_status,cd_education_status -order by sum(cr_net_loss) desc; - +order by sum(cr_net_loss) desc ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query92.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query92.groovy index b569213e94b309..febc29b3756fc4 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query92.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query92.groovy @@ -24,13 +24,39 @@ suite("query92") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + sum(ws_ext_discount_amt) as "Excess Discount Amount" +from + web_sales + ,item + ,date_dim +where +i_manufact_id = 714 +and i_item_sk = ws_item_sk +and d_date between '2000-02-01' and + (cast('2000-02-01' as date) + interval 90 day) +and d_date_sk = ws_sold_date_sk +and ws_ext_discount_amt + > ( + SELECT + 1.3 * avg(ws_ext_discount_amt) + FROM + web_sales + ,date_dim + WHERE + ws_item_sk = i_item_sk + and d_date between '2000-02-01' and + (cast('2000-02-01' as date) + interval 90 day) + and d_date_sk = ws_sold_date_sk + ) +order by sum(ws_ext_discount_amt) +limit 100""" qt_ds_shape_92 ''' explain shape plan select @@ -59,7 +85,6 @@ and ws_ext_discount_amt and d_date_sk = ws_sold_date_sk ) order by sum(ws_ext_discount_amt) -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query93.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query93.groovy index 676e51564e2979..6254c7a976d5e2 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query93.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query93.groovy @@ -24,13 +24,27 @@ suite("query93") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select ss_customer_sk + ,sum(act_sales) sumsales + from (select ss_item_sk + ,ss_ticket_number + ,ss_customer_sk + ,case when sr_return_quantity is not null then (ss_quantity-sr_return_quantity)*ss_sales_price + else (ss_quantity*ss_sales_price) end act_sales + from store_sales left outer join store_returns on (sr_item_sk = ss_item_sk + and sr_ticket_number = ss_ticket_number) + ,reason + where sr_reason_sk = r_reason_sk + and r_reason_desc = 'reason 58') t + group by ss_customer_sk + order by sumsales, ss_customer_sk +limit 100""" qt_ds_shape_93 ''' explain shape plan select ss_customer_sk @@ -47,7 +61,6 @@ sql 'set enable_runtime_filter_prune=false' and r_reason_desc = 'reason 58') t group by ss_customer_sk order by sumsales, ss_customer_sk -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query94.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query94.groovy index ba7e6a6e08875e..a8b90773d9fce6 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query94.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query94.groovy @@ -24,13 +24,38 @@ suite("query94") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + count(distinct ws_order_number) as "order count" + ,sum(ws_ext_ship_cost) as "total shipping cost" + ,sum(ws_net_profit) as "total net profit" +from + web_sales ws1 + ,date_dim + ,customer_address + ,web_site +where + d_date between '2002-5-01' and + (cast('2002-5-01' as date) + interval 60 day) +and ws1.ws_ship_date_sk = d_date_sk +and ws1.ws_ship_addr_sk = ca_address_sk +and ca_state = 'OK' +and ws1.ws_web_site_sk = web_site_sk +and web_company_name = 'pri' +and exists (select * + from web_sales ws2 + where ws1.ws_order_number = ws2.ws_order_number + and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) +and not exists(select * + from web_returns wr1 + where ws1.ws_order_number = wr1.wr_order_number) +order by count(distinct ws_order_number) +limit 100""" qt_ds_shape_94 ''' explain shape plan select @@ -58,7 +83,6 @@ and not exists(select * from web_returns wr1 where ws1.ws_order_number = wr1.wr_order_number) order by count(distinct ws_order_number) -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query95.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query95.groovy index 80ce2668d2ec96..144c9444db5d5d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query95.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query95.groovy @@ -24,13 +24,41 @@ suite("query95") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ws_wh as +(select ws1.ws_order_number,ws1.ws_warehouse_sk wh1,ws2.ws_warehouse_sk wh2 + from web_sales ws1,web_sales ws2 + where ws1.ws_order_number = ws2.ws_order_number + and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) + select + count(distinct ws_order_number) as "order count" + ,sum(ws_ext_ship_cost) as "total shipping cost" + ,sum(ws_net_profit) as "total net profit" +from + web_sales ws1 + ,date_dim + ,customer_address + ,web_site +where + d_date between '2001-4-01' and + (cast('2001-4-01' as date) + interval 60 day) +and ws1.ws_ship_date_sk = d_date_sk +and ws1.ws_ship_addr_sk = ca_address_sk +and ca_state = 'VA' +and ws1.ws_web_site_sk = web_site_sk +and web_company_name = 'pri' +and ws1.ws_order_number in (select ws_order_number + from ws_wh) +and ws1.ws_order_number in (select wr_order_number + from web_returns,ws_wh + where wr_order_number = ws_wh.ws_order_number) +order by count(distinct ws_order_number) +limit 100""" qt_ds_shape_95 ''' explain shape plan with ws_wh as @@ -61,7 +89,6 @@ and ws1.ws_order_number in (select wr_order_number from web_returns,ws_wh where wr_order_number = ws_wh.ws_order_number) order by count(distinct ws_order_number) -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query96.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query96.groovy index 332ce184c77e89..1093559e5fa09e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query96.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query96.groovy @@ -24,13 +24,25 @@ suite("query96") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select count(*) +from store_sales + ,household_demographics + ,time_dim, store +where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 8 + and time_dim.t_minute >= 30 + and household_demographics.hd_dep_count = 0 + and store.s_store_name = 'ese' +order by count(*) +limit 100""" qt_ds_shape_96 ''' explain shape plan select count(*) @@ -45,7 +57,6 @@ where ss_sold_time_sk = time_dim.t_time_sk and household_demographics.hd_dep_count = 0 and store.s_store_name = 'ese' order by count(*) -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query97.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query97.groovy index ac9178ef4ba94a..dec8ba4fd83e3b 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query97.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query97.groovy @@ -24,13 +24,34 @@ suite("query97") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """with ssci as ( +select ss_customer_sk customer_sk + ,ss_item_sk item_sk +from store_sales,date_dim +where ss_sold_date_sk = d_date_sk + and d_month_seq between 1199 and 1199 + 11 and ss_sold_date_sk IS NOT NULL +group by ss_customer_sk + ,ss_item_sk), +csci as( + select cs_bill_customer_sk customer_sk + ,cs_item_sk item_sk +from catalog_sales,date_dim +where cs_sold_date_sk = d_date_sk + and d_month_seq between 1199 and 1199 + 11 and cs_sold_date_sk IS NOT NULL +group by cs_bill_customer_sk + ,cs_item_sk) + select sum(case when ssci.customer_sk is not null and csci.customer_sk is null then 1 else 0 end) store_only + ,sum(case when ssci.customer_sk is null and csci.customer_sk is not null then 1 else 0 end) catalog_only + ,sum(case when ssci.customer_sk is not null and csci.customer_sk is not null then 1 else 0 end) store_and_catalog +from ssci full outer join csci on (ssci.customer_sk=csci.customer_sk + and ssci.item_sk = csci.item_sk) +limit 100""" qt_ds_shape_97 ''' explain shape plan with ssci as ( @@ -54,7 +75,6 @@ group by cs_bill_customer_sk ,sum(case when ssci.customer_sk is not null and csci.customer_sk is not null then 1 else 0 end) store_and_catalog from ssci full outer join csci on (ssci.customer_sk=csci.customer_sk and ssci.item_sk = csci.item_sk) -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query98.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query98.groovy index 5a2e7b924ba609..9a9ef4e9af53fe 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query98.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query98.groovy @@ -24,13 +24,42 @@ suite("query98") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price + ,sum(ss_ext_sales_price) as itemrevenue + ,sum(ss_ext_sales_price)*100/sum(sum(ss_ext_sales_price)) over + (partition by i_class) as revenueratio +from + store_sales + ,item + ,date_dim +where + ss_item_sk = i_item_sk + and i_category in ('Men', 'Sports', 'Jewelry') + and ss_sold_date_sk = d_date_sk + and d_date between cast('1999-02-05' as date) + and (cast('1999-02-05' as date) + interval 30 day) +group by + i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price +order by + i_category + ,i_class + ,i_item_id + ,i_item_desc + ,revenueratio""" qt_ds_shape_98 ''' explain shape plan select i_item_id @@ -62,7 +91,6 @@ order by ,i_class ,i_item_id ,i_item_desc - ,revenueratio; - + ,revenueratio ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query99.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query99.groovy index 30bad128428513..d1e5adf7746a1c 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query99.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/query99.groovy @@ -24,13 +24,44 @@ suite("query99") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - + sql 'set enable_runtime_filter_prune=false' + sql 'set dump_nereids_memo=true' + def ds = """select + substr(w_warehouse_name,1,20) + ,sm_type + ,cc_name + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk <= 30 ) then 1 else 0 end) as "30 days" + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 30) and + (cs_ship_date_sk - cs_sold_date_sk <= 60) then 1 else 0 end ) as "31-60 days" + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 60) and + (cs_ship_date_sk - cs_sold_date_sk <= 90) then 1 else 0 end) as "61-90 days" + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 90) and + (cs_ship_date_sk - cs_sold_date_sk <= 120) then 1 else 0 end) as "91-120 days" + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 120) then 1 else 0 end) as ">120 days" +from + catalog_sales + ,warehouse + ,ship_mode + ,call_center + ,date_dim +where + d_month_seq between 1194 and 1194 + 11 +and cs_ship_date_sk = d_date_sk +and cs_warehouse_sk = w_warehouse_sk +and cs_ship_mode_sk = sm_ship_mode_sk +and cs_call_center_sk = cc_call_center_sk +group by + substr(w_warehouse_name,1,20) + ,sm_type + ,cc_name +order by substr(w_warehouse_name,1,20) + ,sm_type + ,cc_name +limit 100""" qt_ds_shape_99 ''' explain shape plan select @@ -64,7 +95,6 @@ group by order by substr(w_warehouse_name,1,20) ,sm_type ,cc_name -limit 100; - +limit 100 ''' } diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/tpcds_sf1t_stats.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/tpcds_sf1t_stats.groovy new file mode 100644 index 00000000000000..16ede0cd73c200 --- /dev/null +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/shape/tpcds_sf1t_stats.groovy @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +suite('tpcds_sf1t_stats') { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + def stats + stats = sql """ show column stats call_center ;""" + logger.info("${stats}") + stats = sql """ show column stats catalog_page ;""" + logger.info("${stats}") + stats = sql """ show column stats catalog_returns ;""" + logger.info("${stats}") + stats = sql """ show column stats catalog_sales ;""" + logger.info("${stats}") + stats = sql """ show column stats customer ;""" + logger.info("${stats}") + stats = sql """ show column stats customer_address ;""" + logger.info("${stats}") + stats = sql """ show column stats customer_demographics ;""" + logger.info("${stats}") + stats = sql """ show column stats date_dim ;""" + logger.info("${stats}") + stats = sql """ show column stats dbgen_version ;""" + logger.info("${stats}") + stats = sql """ show column stats household_demographics ;""" + logger.info("${stats}") + stats = sql """ show column stats income_band ;""" + logger.info("${stats}") + stats = sql """ show column stats inventory ;""" + logger.info("${stats}") + stats = sql """ show column stats item ;""" + logger.info("${stats}") + stats = sql """ show column stats promotion ;""" + logger.info("${stats}") + stats = sql """ show column stats reason ;""" + logger.info("${stats}") + stats = sql """ show column stats ship_mode ;""" + logger.info("${stats}") + stats = sql """ show column stats store ;""" + logger.info("${stats}") + stats = sql """ show column stats store_returns ;""" + logger.info("${stats}") + stats = sql """ show column stats store_sales ;""" + logger.info("${stats}") + stats = sql """ show column stats time_dim ;""" + logger.info("${stats}") + stats = sql """ show column stats warehouse ;""" + logger.info("${stats}") + stats = sql """ show column stats web_page ;""" + logger.info("${stats}") + stats = sql """ show column stats web_returns ;""" + logger.info("${stats}") + stats = sql """ show column stats web_sales ;""" + logger.info("${stats}") + stats = sql """ show column stats web_site ;""" + logger.info("${stats}") + +} \ No newline at end of file diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/gen_rf.py b/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/gen_rf_prune.py similarity index 70% rename from regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/gen_rf.py rename to regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/gen_rf_prune.py index bb96672a0ed169..60e9004c90e13b 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/gen_rf.py +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/gen_rf_prune.py @@ -15,15 +15,12 @@ # // specific language governing permissions and limitations # // under the License. if __name__ == '__main__': - with open('rf.tmpl', 'r') as f: + with open('rf_prune.tmpl', 'r') as f: tmpl = f.read() for i in range(1,100): with open('../../../../tools/tpcds-tools/queries/sf100/query'+str(i)+'.sql', 'r') as fi: casei = tmpl.replace('{--}', str(i)) - casei = casei.replace('{query}', fi.read()) - # with open('../rf/ds_rf'+str(i)+'.groovy', 'w') as out: - # out.write(casei) - with open('rf/rf.'+str(i), 'r') as rf_file: - casei = casei.replace('{rfs}', rf_file.read()) - with open('../rf/ds_rf'+str(i)+'.groovy', 'w') as out: - out.write(casei) \ No newline at end of file + casei = casei.replace('{query}', fi.read().split(";")[0]) + + with open('../rf_prune/query'+str(i)+'.groovy', 'w') as out: + out.write(casei) \ No newline at end of file diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/gen_shape.py b/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/gen_shape.py index d56bd6461d5260..3fde2ac6936367 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/gen_shape.py +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/gen_shape.py @@ -20,7 +20,7 @@ for i in range(1,100): with open('../../../../tools/tpcds-tools/queries/sf100/query'+str(i)+'.sql', 'r') as fi: casei = tmpl.replace('{--}', str(i)) - casei = casei.replace('{query}', fi.read()) + casei = casei.replace('{query}', fi.read().split(";")[0]) with open('../shape/query'+str(i)+'.groovy', 'w') as out: out.write(casei) \ No newline at end of file diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf.tmpl b/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf_prune.tmpl similarity index 58% rename from regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf.tmpl rename to regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf_prune.tmpl index de7d37d18394de..ef0261d4f74899 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf.tmpl +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf_prune.tmpl @@ -17,7 +17,7 @@ * under the License. */ -suite("ds_rf{--}") { +suite("query{--}") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -27,32 +27,12 @@ suite("ds_rf{--}") { sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'set enable_pipeline_engine=true' - sql 'set enable_runtime_filter_prune=false' - String stmt = ''' - explain physical plan - {query} - ''' - String plan = sql "${stmt}" - log.info(plan) - def getRuntimeFilters = { plantree -> - { - def lst = [] - plantree.eachMatch("RF\\d+\\[[^#]+#\\d+->\\[[^\\]]+\\]") { - ch -> - { - lst.add(ch.replaceAll("#\\d+", '')) - } - } - return lst.join(',') - } - } - - // def outFile = "regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.{--}" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("{rfs}", getRuntimeFilters(plan)) + sql 'set enable_runtime_filter_prune=true' + + def ds = """{query}""" + qt_ds_shape_{--} """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/shape.tmpl b/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/shape.tmpl index 8f1d4bf10486f3..dee3972b8bd1cd 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/shape.tmpl +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/shape.tmpl @@ -27,11 +27,11 @@ suite("query{--}") { sql 'set parallel_fragment_exec_instance_num=8; ' sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - - qt_ds_shape_{--} ''' + sql 'set enable_runtime_filter_prune=false' + def ds = """{query}""" + qt_ds_shape_{--} """ explain shape plan - {query} - ''' + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query1.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query1.groovy index 5c41d19e4dc0c3..3fbe8f014134f9 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query1.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query1.groovy @@ -1,59 +1,59 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query1") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - qt_ds_shape_1 ''' - explain shape plan -with customer_total_return as -(select sr_customer_sk as ctr_customer_sk -,sr_store_sk as ctr_store_sk -,sum(SR_FEE) as ctr_total_return -from store_returns -,date_dim -where sr_returned_date_sk = d_date_sk -and d_year =2000 -group by sr_customer_sk -,sr_store_sk) - select c_customer_id -from customer_total_return ctr1 -,store -,customer -where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 -from customer_total_return ctr2 -where ctr1.ctr_store_sk = ctr2.ctr_store_sk) -and s_store_sk = ctr1.ctr_store_sk -and s_state = 'SD' -and ctr1.ctr_customer_sk = c_customer_sk -order by c_customer_id -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query1") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """with customer_total_return as +(select sr_customer_sk as ctr_customer_sk +,sr_store_sk as ctr_store_sk +,sum(SR_FEE) as ctr_total_return +from store_returns +,date_dim +where sr_returned_date_sk = d_date_sk +and d_year =2000 +group by sr_customer_sk +,sr_store_sk) + select c_customer_id +from customer_total_return ctr1 +,store +,customer +where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 +from customer_total_return ctr2 +where ctr1.ctr_store_sk = ctr2.ctr_store_sk) +and s_store_sk = ctr1.ctr_store_sk +and s_state = 'SD' +and ctr1.ctr_customer_sk = c_customer_sk +order by c_customer_id +limit 100""" + qt_ds_shape_1 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query10.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query10.groovy index ed3e03af299728..e06d86f9a0f992 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query10.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query10.groovy @@ -24,20 +24,13 @@ suite("query10") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_10 ''' - explain shape plan - - - - -select + def ds = """select cd_gender, cd_marital_status, cd_education_status, @@ -92,7 +85,9 @@ select cd_dep_count, cd_dep_employed_count, cd_dep_college_count -limit 100; - - ''' +limit 100""" + qt_ds_shape_10 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query11.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query11.groovy index e5b171c5d97545..5911091adbd8c8 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query11.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query11.groovy @@ -24,20 +24,13 @@ suite("query11") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_11 ''' - explain shape plan - - - - -with year_total as ( + def ds = """with year_total as ( select c_customer_id customer_id ,c_first_name customer_first_name ,c_last_name customer_last_name @@ -114,7 +107,9 @@ with year_total as ( ,t_s_secyear.customer_first_name ,t_s_secyear.customer_last_name ,t_s_secyear.customer_birth_country -limit 100; - - ''' +limit 100""" + qt_ds_shape_11 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query12.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query12.groovy index 782fa34d0f9cc1..d923f38c6e7fad 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query12.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query12.groovy @@ -24,20 +24,13 @@ suite("query12") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_12 ''' - explain shape plan - - - - -select i_item_id + def ds = """select i_item_id ,i_item_desc ,i_category ,i_class @@ -67,7 +60,9 @@ order by ,i_item_id ,i_item_desc ,revenueratio -limit 100; - - ''' +limit 100""" + qt_ds_shape_12 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query13.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query13.groovy index d8fa04906edd38..335e78f9130ac6 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query13.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query13.groovy @@ -24,18 +24,13 @@ suite("query13") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_13 ''' - explain shape plan - - -select avg(ss_quantity) + def ds = """select avg(ss_quantity) ,avg(ss_ext_sales_price) ,avg(ss_ext_wholesale_cost) ,sum(ss_ext_wholesale_cost) @@ -83,7 +78,9 @@ select avg(ss_quantity) and ca_state in ('NH', 'OH', 'TX') and ss_net_profit between 50 and 250 )) -; - - ''' +""" + qt_ds_shape_13 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query14.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query14.groovy index b6894317a19165..cc86d73025f002 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query14.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query14.groovy @@ -24,18 +24,13 @@ suite("query14") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_14 ''' - explain shape plan - - -with cross_items as + def ds = """with cross_items as (select i_item_sk ss_item_sk from item, (select iss.i_brand_id brand_id @@ -135,7 +130,9 @@ with cross_items as ) y group by rollup (channel, i_brand_id,i_class_id,i_category_id) order by channel,i_brand_id,i_class_id,i_category_id - limit 100; - - ''' + limit 100""" + qt_ds_shape_14 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query15.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query15.groovy index be88fd7ab2261f..a5c877ffa7ca32 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query15.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query15.groovy @@ -1,58 +1,54 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query15") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_15 ''' - explain shape plan - - - -select ca_zip - ,sum(cs_sales_price) - from catalog_sales - ,customer - ,customer_address - ,date_dim - where cs_bill_customer_sk = c_customer_sk - and c_current_addr_sk = ca_address_sk - and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', - '85392', '85460', '80348', '81792') - or ca_state in ('CA','WA','GA') - or cs_sales_price > 500) - and cs_sold_date_sk = d_date_sk - and d_qoy = 1 and d_year = 2001 - group by ca_zip - order by ca_zip - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query15") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select ca_zip + ,sum(cs_sales_price) + from catalog_sales + ,customer + ,customer_address + ,date_dim + where cs_bill_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', + '85392', '85460', '80348', '81792') + or ca_state in ('CA','WA','GA') + or cs_sales_price > 500) + and cs_sold_date_sk = d_date_sk + and d_qoy = 1 and d_year = 2001 + group by ca_zip + order by ca_zip + limit 100""" + qt_ds_shape_15 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query16.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query16.groovy index 371523ebf1c4be..51935835071878 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query16.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query16.groovy @@ -1,70 +1,65 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query16") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_16 ''' - explain shape plan - - - - -select - count(distinct cs_order_number) as "order count" - ,sum(cs_ext_ship_cost) as "total shipping cost" - ,sum(cs_net_profit) as "total net profit" -from - catalog_sales cs1 - ,date_dim - ,customer_address - ,call_center -where - d_date between '2002-4-01' and - (cast('2002-4-01' as date) + interval 60 day) -and cs1.cs_ship_date_sk = d_date_sk -and cs1.cs_ship_addr_sk = ca_address_sk -and ca_state = 'WV' -and cs1.cs_call_center_sk = cc_call_center_sk -and cc_county in ('Ziebach County','Luce County','Richland County','Daviess County', - 'Barrow County' -) -and exists (select * - from catalog_sales cs2 - where cs1.cs_order_number = cs2.cs_order_number - and cs1.cs_warehouse_sk <> cs2.cs_warehouse_sk) -and not exists(select * - from catalog_returns cr1 - where cs1.cs_order_number = cr1.cr_order_number) -order by count(distinct cs_order_number) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query16") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select + count(distinct cs_order_number) as "order count" + ,sum(cs_ext_ship_cost) as "total shipping cost" + ,sum(cs_net_profit) as "total net profit" +from + catalog_sales cs1 + ,date_dim + ,customer_address + ,call_center +where + d_date between '2002-4-01' and + (cast('2002-4-01' as date) + interval 60 day) +and cs1.cs_ship_date_sk = d_date_sk +and cs1.cs_ship_addr_sk = ca_address_sk +and ca_state = 'WV' +and cs1.cs_call_center_sk = cc_call_center_sk +and cc_county in ('Ziebach County','Luce County','Richland County','Daviess County', + 'Barrow County' +) +and exists (select * + from catalog_sales cs2 + where cs1.cs_order_number = cs2.cs_order_number + and cs1.cs_warehouse_sk <> cs2.cs_warehouse_sk) +and not exists(select * + from catalog_returns cr1 + where cs1.cs_order_number = cr1.cr_order_number) +order by count(distinct cs_order_number) +limit 100""" + qt_ds_shape_16 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query17.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query17.groovy index 740c633a7fe562..9677ea7f2e7c07 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query17.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query17.groovy @@ -24,20 +24,13 @@ suite("query17") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_17 ''' - explain shape plan - - - - -select i_item_id + def ds = """select i_item_id ,i_item_desc ,s_state ,count(ss_quantity) as store_sales_quantitycount @@ -78,7 +71,9 @@ select i_item_id order by i_item_id ,i_item_desc ,s_state -limit 100; - - ''' +limit 100""" + qt_ds_shape_17 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query18.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query18.groovy index efcd81bc34ca2a..03bde04c2b8e09 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query18.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query18.groovy @@ -24,20 +24,13 @@ suite("query18") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_18 ''' - explain shape plan - - - - -select i_item_id, + def ds = """select i_item_id, ca_country, ca_state, ca_county, @@ -67,7 +60,9 @@ select i_item_id, ca_state, ca_county, i_item_id - limit 100; - - ''' + limit 100""" + qt_ds_shape_18 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query19.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query19.groovy index 97dba8b02c2a98..a96af3a85bf224 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query19.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query19.groovy @@ -1,64 +1,59 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query19") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_19 ''' - explain shape plan - - - - -select i_brand_id brand_id, i_brand brand, i_manufact_id, i_manufact, - sum(ss_ext_sales_price) ext_price - from date_dim, store_sales, item,customer,customer_address,store - where d_date_sk = ss_sold_date_sk - and ss_item_sk = i_item_sk - and i_manager_id=2 - and d_moy=12 - and d_year=1999 - and ss_customer_sk = c_customer_sk - and c_current_addr_sk = ca_address_sk - and substr(ca_zip,1,5) <> substr(s_zip,1,5) - and ss_store_sk = s_store_sk - group by i_brand - ,i_brand_id - ,i_manufact_id - ,i_manufact - order by ext_price desc - ,i_brand - ,i_brand_id - ,i_manufact_id - ,i_manufact -limit 100 ; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query19") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select i_brand_id brand_id, i_brand brand, i_manufact_id, i_manufact, + sum(ss_ext_sales_price) ext_price + from date_dim, store_sales, item,customer,customer_address,store + where d_date_sk = ss_sold_date_sk + and ss_item_sk = i_item_sk + and i_manager_id=2 + and d_moy=12 + and d_year=1999 + and ss_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and substr(ca_zip,1,5) <> substr(s_zip,1,5) + and ss_store_sk = s_store_sk + group by i_brand + ,i_brand_id + ,i_manufact_id + ,i_manufact + order by ext_price desc + ,i_brand + ,i_brand_id + ,i_manufact_id + ,i_manufact +limit 100 """ + qt_ds_shape_19 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query2.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query2.groovy index d06a67f674a450..11d726ef8245f9 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query2.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query2.groovy @@ -24,21 +24,13 @@ suite("query2") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - - qt_ds_shape_2 ''' - explain shape plan - - - - -with wscs as + def ds = """with wscs as (select sold_date_sk ,sales_price from (select ws_sold_date_sk sold_date_sk @@ -94,7 +86,9 @@ with wscs as where date_dim.d_week_seq = wswscs.d_week_seq and d_year = 1998+1) z where d_week_seq1=d_week_seq2-53 - order by d_week_seq1; - - ''' + order by d_week_seq1""" + qt_ds_shape_2 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query20.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query20.groovy index cfda0f1d085d20..fe25128298459d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query20.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query20.groovy @@ -1,69 +1,64 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query20") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_20 ''' - explain shape plan - - - - -select i_item_id - ,i_item_desc - ,i_category - ,i_class - ,i_current_price - ,sum(cs_ext_sales_price) as itemrevenue - ,sum(cs_ext_sales_price)*100/sum(sum(cs_ext_sales_price)) over - (partition by i_class) as revenueratio - from catalog_sales - ,item - ,date_dim - where cs_item_sk = i_item_sk - and i_category in ('Shoes', 'Books', 'Women') - and cs_sold_date_sk = d_date_sk - and d_date between cast('2002-01-26' as date) - and (cast('2002-01-26' as date) + interval 30 day) - group by i_item_id - ,i_item_desc - ,i_category - ,i_class - ,i_current_price - order by i_category - ,i_class - ,i_item_id - ,i_item_desc - ,revenueratio -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query20") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price + ,sum(cs_ext_sales_price) as itemrevenue + ,sum(cs_ext_sales_price)*100/sum(sum(cs_ext_sales_price)) over + (partition by i_class) as revenueratio + from catalog_sales + ,item + ,date_dim + where cs_item_sk = i_item_sk + and i_category in ('Shoes', 'Books', 'Women') + and cs_sold_date_sk = d_date_sk + and d_date between cast('2002-01-26' as date) + and (cast('2002-01-26' as date) + interval 30 day) + group by i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price + order by i_category + ,i_class + ,i_item_id + ,i_item_desc + ,revenueratio +limit 100""" + qt_ds_shape_20 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query21.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query21.groovy index 0aa8ecf9d60f39..7efe0f921efd42 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query21.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query21.groovy @@ -1,69 +1,64 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query21") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_21 ''' - explain shape plan - - - - -select * - from(select w_warehouse_name - ,i_item_id - ,sum(case when (cast(d_date as date) < cast ('2002-02-27' as date)) - then inv_quantity_on_hand - else 0 end) as inv_before - ,sum(case when (cast(d_date as date) >= cast ('2002-02-27' as date)) - then inv_quantity_on_hand - else 0 end) as inv_after - from inventory - ,warehouse - ,item - ,date_dim - where i_current_price between 0.99 and 1.49 - and i_item_sk = inv_item_sk - and inv_warehouse_sk = w_warehouse_sk - and inv_date_sk = d_date_sk - and d_date between (cast ('2002-02-27' as date) - interval 30 day) - and (cast ('2002-02-27' as date) + interval 30 day) - group by w_warehouse_name, i_item_id) x - where (case when inv_before > 0 - then inv_after / inv_before - else null - end) between 2.0/3.0 and 3.0/2.0 - order by w_warehouse_name - ,i_item_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query21") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select * + from(select w_warehouse_name + ,i_item_id + ,sum(case when (cast(d_date as date) < cast ('2002-02-27' as date)) + then inv_quantity_on_hand + else 0 end) as inv_before + ,sum(case when (cast(d_date as date) >= cast ('2002-02-27' as date)) + then inv_quantity_on_hand + else 0 end) as inv_after + from inventory + ,warehouse + ,item + ,date_dim + where i_current_price between 0.99 and 1.49 + and i_item_sk = inv_item_sk + and inv_warehouse_sk = w_warehouse_sk + and inv_date_sk = d_date_sk + and d_date between (cast ('2002-02-27' as date) - interval 30 day) + and (cast ('2002-02-27' as date) + interval 30 day) + group by w_warehouse_name, i_item_id) x + where (case when inv_before > 0 + then inv_after / inv_before + else null + end) between 2.0/3.0 and 3.0/2.0 + order by w_warehouse_name + ,i_item_id + limit 100""" + qt_ds_shape_21 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query22.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query22.groovy index 681d0fe3b8cbd0..8604b47f8540e2 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query22.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query22.groovy @@ -1,59 +1,54 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query22") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_22 ''' - explain shape plan - - - - -select i_product_name - ,i_brand - ,i_class - ,i_category - ,avg(inv_quantity_on_hand) qoh - from inventory - ,date_dim - ,item - where inv_date_sk=d_date_sk - and inv_item_sk=i_item_sk - and d_month_seq between 1188 and 1188 + 11 - group by rollup(i_product_name - ,i_brand - ,i_class - ,i_category) -order by qoh, i_product_name, i_brand, i_class, i_category -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query22") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select i_product_name + ,i_brand + ,i_class + ,i_category + ,avg(inv_quantity_on_hand) qoh + from inventory + ,date_dim + ,item + where inv_date_sk=d_date_sk + and inv_item_sk=i_item_sk + and d_month_seq between 1188 and 1188 + 11 + group by rollup(i_product_name + ,i_brand + ,i_class + ,i_category) +order by qoh, i_product_name, i_brand, i_class, i_category +limit 100""" + qt_ds_shape_22 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query23.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query23.groovy index d92b0c855ef27d..d9a2f937f00ba4 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query23.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query23.groovy @@ -24,19 +24,13 @@ suite("query23") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_23 ''' - explain shape plan - - - -with frequent_ss_items as + def ds = """with frequent_ss_items as (select substr(i_item_desc,1,30) itemdesc,i_item_sk item_sk,d_date solddate,count(*) cnt from store_sales ,date_dim @@ -84,7 +78,9 @@ from and ws_sold_date_sk = d_date_sk and ws_item_sk in (select item_sk from frequent_ss_items) and ws_bill_customer_sk in (select c_customer_sk from best_ss_customer)) t2 - limit 100; - - ''' + limit 100""" + qt_ds_shape_23 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query24.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query24.groovy index 78ed622b9fd357..52c235516c39b4 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query24.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query24.groovy @@ -24,70 +24,66 @@ suite("query24") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_24 ''' - explain shape plan - - - - with ssales as - (select c_last_name - ,c_first_name - ,s_store_name - ,ca_state - ,s_state - ,i_color - ,i_current_price - ,i_manager_id - ,i_units - ,i_size - ,sum(ss_net_profit) netpaid - from store_sales - ,store_returns - ,store - ,item - ,customer - ,customer_address - where ss_ticket_number = sr_ticket_number - and ss_item_sk = sr_item_sk - and ss_customer_sk = c_customer_sk - and ss_item_sk = i_item_sk - and ss_store_sk = s_store_sk - and c_current_addr_sk = ca_address_sk - and c_birth_country <> upper(ca_country) - and s_zip = ca_zip - and s_market_id=8 - group by c_last_name - ,c_first_name - ,s_store_name - ,ca_state - ,s_state - ,i_color - ,i_current_price - ,i_manager_id - ,i_units - ,i_size) - select c_last_name - ,c_first_name - ,s_store_name - ,sum(netpaid) paid - from ssales - where i_color = 'beige' - group by c_last_name - ,c_first_name - ,s_store_name - having sum(netpaid) > (select 0.05*avg(netpaid) - from ssales) - order by c_last_name - ,c_first_name - ,s_store_name - ; - - ''' + def ds = """with ssales as +(select c_last_name + ,c_first_name + ,s_store_name + ,ca_state + ,s_state + ,i_color + ,i_current_price + ,i_manager_id + ,i_units + ,i_size + ,sum(ss_net_profit) netpaid +from store_sales + ,store_returns + ,store + ,item + ,customer + ,customer_address +where ss_ticket_number = sr_ticket_number + and ss_item_sk = sr_item_sk + and ss_customer_sk = c_customer_sk + and ss_item_sk = i_item_sk + and ss_store_sk = s_store_sk + and c_current_addr_sk = ca_address_sk + and c_birth_country <> upper(ca_country) + and s_zip = ca_zip +and s_market_id=8 +group by c_last_name + ,c_first_name + ,s_store_name + ,ca_state + ,s_state + ,i_color + ,i_current_price + ,i_manager_id + ,i_units + ,i_size) +select c_last_name + ,c_first_name + ,s_store_name + ,sum(netpaid) paid +from ssales +where i_color = 'beige' +group by c_last_name + ,c_first_name + ,s_store_name +having sum(netpaid) > (select 0.05*avg(netpaid) + from ssales) +order by c_last_name + ,c_first_name + ,s_store_name +""" + qt_ds_shape_24 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query25.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query25.groovy index 9064dd98e5afa2..0f16e5496d622d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query25.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query25.groovy @@ -24,19 +24,13 @@ suite("query25") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_25 ''' - explain shape plan - - - -select + def ds = """select i_item_id ,i_item_desc ,s_store_id @@ -80,7 +74,9 @@ select ,i_item_desc ,s_store_id ,s_store_name - limit 100; - - ''' + limit 100""" + qt_ds_shape_25 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query26.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query26.groovy index 995a142d3c385f..9a443e3c7c2cec 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query26.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query26.groovy @@ -1,60 +1,55 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query26") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_26 ''' - explain shape plan - - - - -select i_item_id, - avg(cs_quantity) agg1, - avg(cs_list_price) agg2, - avg(cs_coupon_amt) agg3, - avg(cs_sales_price) agg4 - from catalog_sales, customer_demographics, date_dim, item, promotion - where cs_sold_date_sk = d_date_sk and - cs_item_sk = i_item_sk and - cs_bill_cdemo_sk = cd_demo_sk and - cs_promo_sk = p_promo_sk and - cd_gender = 'M' and - cd_marital_status = 'S' and - cd_education_status = 'Unknown' and - (p_channel_email = 'N' or p_channel_event = 'N') and - d_year = 2001 - group by i_item_id - order by i_item_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query26") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select i_item_id, + avg(cs_quantity) agg1, + avg(cs_list_price) agg2, + avg(cs_coupon_amt) agg3, + avg(cs_sales_price) agg4 + from catalog_sales, customer_demographics, date_dim, item, promotion + where cs_sold_date_sk = d_date_sk and + cs_item_sk = i_item_sk and + cs_bill_cdemo_sk = cd_demo_sk and + cs_promo_sk = p_promo_sk and + cd_gender = 'M' and + cd_marital_status = 'S' and + cd_education_status = 'Unknown' and + (p_channel_email = 'N' or p_channel_event = 'N') and + d_year = 2001 + group by i_item_id + order by i_item_id + limit 100""" + qt_ds_shape_26 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query27.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query27.groovy index b75cd5f5b74aae..1550166d9cea57 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query27.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query27.groovy @@ -1,61 +1,57 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query27") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_27 ''' - explain shape plan - - - -select i_item_id, - s_state, grouping(s_state) g_state, - avg(ss_quantity) agg1, - avg(ss_list_price) agg2, - avg(ss_coupon_amt) agg3, - avg(ss_sales_price) agg4 - from store_sales, customer_demographics, date_dim, store, item - where ss_sold_date_sk = d_date_sk and - ss_item_sk = i_item_sk and - ss_store_sk = s_store_sk and - ss_cdemo_sk = cd_demo_sk and - cd_gender = 'F' and - cd_marital_status = 'D' and - cd_education_status = 'Secondary' and - d_year = 1999 and - s_state in ('MO','AL', 'MI', 'TN', 'LA', 'SC') - group by rollup (i_item_id, s_state) - order by i_item_id - ,s_state - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query27") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select i_item_id, + s_state, grouping(s_state) g_state, + avg(ss_quantity) agg1, + avg(ss_list_price) agg2, + avg(ss_coupon_amt) agg3, + avg(ss_sales_price) agg4 + from store_sales, customer_demographics, date_dim, store, item + where ss_sold_date_sk = d_date_sk and + ss_item_sk = i_item_sk and + ss_store_sk = s_store_sk and + ss_cdemo_sk = cd_demo_sk and + cd_gender = 'F' and + cd_marital_status = 'D' and + cd_education_status = 'Secondary' and + d_year = 1999 and + s_state in ('MO','AL', 'MI', 'TN', 'LA', 'SC') + group by rollup (i_item_id, s_state) + order by i_item_id + ,s_state + limit 100""" + qt_ds_shape_27 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query28.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query28.groovy index 7460bf80e96a43..af80817fd14e85 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query28.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query28.groovy @@ -24,20 +24,13 @@ suite("query28") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_28 ''' - explain shape plan - - - - -select * + def ds = """select * from (select avg(ss_list_price) B1_LP ,count(ss_list_price) B1_CNT ,count(distinct ss_list_price) B1_CNTD @@ -86,7 +79,9 @@ from (select avg(ss_list_price) B1_LP and (ss_list_price between 89 and 89+10 or ss_coupon_amt between 15257 and 15257+1000 or ss_wholesale_cost between 31 and 31+20)) B6 -limit 100; - - ''' +limit 100""" + qt_ds_shape_28 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query29.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query29.groovy index 504f0e4b87c001..3645532b513793 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query29.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query29.groovy @@ -24,20 +24,13 @@ suite("query29") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_29 ''' - explain shape plan - - - - -select + def ds = """select i_item_id ,i_item_desc ,s_store_id @@ -80,7 +73,9 @@ select ,i_item_desc ,s_store_id ,s_store_name - limit 100; - - ''' + limit 100""" + qt_ds_shape_29 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query3.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query3.groovy index 3577d7f5ef97d2..e306ec1f4c25cf 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query3.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query3.groovy @@ -1,61 +1,55 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query3") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - - qt_ds_shape_3 ''' - explain shape plan - - - - -select dt.d_year - ,item.i_brand_id brand_id - ,item.i_brand brand - ,sum(ss_sales_price) sum_agg - from date_dim dt - ,store_sales - ,item - where dt.d_date_sk = store_sales.ss_sold_date_sk - and store_sales.ss_item_sk = item.i_item_sk - and item.i_manufact_id = 816 - and dt.d_moy=11 - group by dt.d_year - ,item.i_brand - ,item.i_brand_id - order by dt.d_year - ,sum_agg desc - ,brand_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query3") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select dt.d_year + ,item.i_brand_id brand_id + ,item.i_brand brand + ,sum(ss_sales_price) sum_agg + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manufact_id = 816 + and dt.d_moy=11 + group by dt.d_year + ,item.i_brand + ,item.i_brand_id + order by dt.d_year + ,sum_agg desc + ,brand_id + limit 100""" + qt_ds_shape_3 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query30.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query30.groovy index 0369157e1212c3..b6274e129e12d5 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query30.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query30.groovy @@ -1,70 +1,65 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query30") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_30 ''' - explain shape plan - - - - -with customer_total_return as - (select wr_returning_customer_sk as ctr_customer_sk - ,ca_state as ctr_state, - sum(wr_return_amt) as ctr_total_return - from web_returns - ,date_dim - ,customer_address - where wr_returned_date_sk = d_date_sk - and d_year =2002 - and wr_returning_addr_sk = ca_address_sk - group by wr_returning_customer_sk - ,ca_state) - select c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag - ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address - ,c_last_review_date_sk,ctr_total_return - from customer_total_return ctr1 - ,customer_address - ,customer - where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 - from customer_total_return ctr2 - where ctr1.ctr_state = ctr2.ctr_state) - and ca_address_sk = c_current_addr_sk - and ca_state = 'IN' - and ctr1.ctr_customer_sk = c_customer_sk - order by c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag - ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address - ,c_last_review_date_sk,ctr_total_return -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query30") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """with customer_total_return as + (select wr_returning_customer_sk as ctr_customer_sk + ,ca_state as ctr_state, + sum(wr_return_amt) as ctr_total_return + from web_returns + ,date_dim + ,customer_address + where wr_returned_date_sk = d_date_sk + and d_year =2002 + and wr_returning_addr_sk = ca_address_sk + group by wr_returning_customer_sk + ,ca_state) + select c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag + ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address + ,c_last_review_date_sk,ctr_total_return + from customer_total_return ctr1 + ,customer_address + ,customer + where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 + from customer_total_return ctr2 + where ctr1.ctr_state = ctr2.ctr_state) + and ca_address_sk = c_current_addr_sk + and ca_state = 'IN' + and ctr1.ctr_customer_sk = c_customer_sk + order by c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag + ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address + ,c_last_review_date_sk,ctr_total_return +limit 100""" + qt_ds_shape_30 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query31.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query31.groovy index 2587ad7a704576..d3649cb066f8e5 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query31.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query31.groovy @@ -24,20 +24,13 @@ suite("query31") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_31 ''' - explain shape plan - - - - -with ss as + def ds = """with ss as (select ca_county,d_qoy, d_year,sum(ss_ext_sales_price) as store_sales from store_sales,date_dim,customer_address where ss_sold_date_sk = d_date_sk @@ -85,7 +78,9 @@ with ss as > case when ss1.store_sales > 0 then ss2.store_sales/ss1.store_sales else null end and case when ws2.web_sales > 0 then ws3.web_sales/ws2.web_sales else null end > case when ss2.store_sales > 0 then ss3.store_sales/ss2.store_sales else null end - order by web_q1_q2_increase; - - ''' + order by web_q1_q2_increase""" + qt_ds_shape_31 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query32.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query32.groovy index 30b9a6adcd5267..8081abdd26e53f 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query32.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query32.groovy @@ -1,67 +1,62 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query32") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_32 ''' - explain shape plan - - - - -select sum(cs_ext_discount_amt) as "excess discount amount" -from - catalog_sales - ,item - ,date_dim -where -i_manufact_id = 29 -and i_item_sk = cs_item_sk -and d_date between '1999-01-07' and - (cast('1999-01-07' as date) + interval 90 day) -and d_date_sk = cs_sold_date_sk -and cs_ext_discount_amt - > ( - select - 1.3 * avg(cs_ext_discount_amt) - from - catalog_sales - ,date_dim - where - cs_item_sk = i_item_sk - and d_date between '1999-01-07' and - (cast('1999-01-07' as date) + interval 90 day) - and d_date_sk = cs_sold_date_sk - ) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query32") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select sum(cs_ext_discount_amt) as "excess discount amount" +from + catalog_sales + ,item + ,date_dim +where +i_manufact_id = 29 +and i_item_sk = cs_item_sk +and d_date between '1999-01-07' and + (cast('1999-01-07' as date) + interval 90 day) +and d_date_sk = cs_sold_date_sk +and cs_ext_discount_amt + > ( + select + 1.3 * avg(cs_ext_discount_amt) + from + catalog_sales + ,date_dim + where + cs_item_sk = i_item_sk + and d_date between '1999-01-07' and + (cast('1999-01-07' as date) + interval 90 day) + and d_date_sk = cs_sold_date_sk + ) +limit 100""" + qt_ds_shape_32 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query33.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query33.groovy index c063f3f4a7b445..24111a95123232 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query33.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query33.groovy @@ -24,20 +24,13 @@ suite("query33") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_33 ''' - explain shape plan - - - - -with ss as ( + def ds = """with ss as ( select i_manufact_id,sum(ss_ext_sales_price) total_sales from @@ -108,7 +101,9 @@ where i_category in ('Home')) select * from ws) tmp1 group by i_manufact_id order by total_sales -limit 100; - - ''' +limit 100""" + qt_ds_shape_33 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query34.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query34.groovy index 125147f38b5572..6715b6f6bd24bc 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query34.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query34.groovy @@ -1,70 +1,65 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query34") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_34 ''' - explain shape plan - - - - -select c_last_name - ,c_first_name - ,c_salutation - ,c_preferred_cust_flag - ,ss_ticket_number - ,cnt from - (select ss_ticket_number - ,ss_customer_sk - ,count(*) cnt - from store_sales,date_dim,store,household_demographics - where store_sales.ss_sold_date_sk = date_dim.d_date_sk - and store_sales.ss_store_sk = store.s_store_sk - and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk - and (date_dim.d_dom between 1 and 3 or date_dim.d_dom between 25 and 28) - and (household_demographics.hd_buy_potential = '1001-5000' or - household_demographics.hd_buy_potential = '0-500') - and household_demographics.hd_vehicle_count > 0 - and (case when household_demographics.hd_vehicle_count > 0 - then household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count - else null - end) > 1.2 - and date_dim.d_year in (1998,1998+1,1998+2) - and store.s_county in ('Ziebach County','Daviess County','Walker County','Richland County', - 'Barrow County','Franklin Parish','Williamson County','Luce County') - group by ss_ticket_number,ss_customer_sk) dn,customer - where ss_customer_sk = c_customer_sk - and cnt between 15 and 20 - order by c_last_name,c_first_name,c_salutation,c_preferred_cust_flag desc, ss_ticket_number; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query34") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select c_last_name + ,c_first_name + ,c_salutation + ,c_preferred_cust_flag + ,ss_ticket_number + ,cnt from + (select ss_ticket_number + ,ss_customer_sk + ,count(*) cnt + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and (date_dim.d_dom between 1 and 3 or date_dim.d_dom between 25 and 28) + and (household_demographics.hd_buy_potential = '1001-5000' or + household_demographics.hd_buy_potential = '0-500') + and household_demographics.hd_vehicle_count > 0 + and (case when household_demographics.hd_vehicle_count > 0 + then household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count + else null + end) > 1.2 + and date_dim.d_year in (1998,1998+1,1998+2) + and store.s_county in ('Ziebach County','Daviess County','Walker County','Richland County', + 'Barrow County','Franklin Parish','Williamson County','Luce County') + group by ss_ticket_number,ss_customer_sk) dn,customer + where ss_customer_sk = c_customer_sk + and cnt between 15 and 20 + order by c_last_name,c_first_name,c_salutation,c_preferred_cust_flag desc, ss_ticket_number""" + qt_ds_shape_34 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query35.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query35.groovy index e12bd6da9b9b3b..421b119cb82f26 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query35.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query35.groovy @@ -24,20 +24,13 @@ suite("query35") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_35 ''' - explain shape plan - - - - -select + def ds = """select ca_state, cd_gender, cd_marital_status, @@ -91,7 +84,9 @@ select cd_dep_count, cd_dep_employed_count, cd_dep_college_count - limit 100; - - ''' + limit 100""" + qt_ds_shape_35 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query36.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query36.groovy index 2b06bfdb65eb71..85c512663a1ce9 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query36.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query36.groovy @@ -1,69 +1,64 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query36") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_36 ''' - explain shape plan - - - - -select - sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin - ,i_category - ,i_class - ,grouping(i_category)+grouping(i_class) as lochierarchy - ,rank() over ( - partition by grouping(i_category)+grouping(i_class), - case when grouping(i_class) = 0 then i_category end - order by sum(ss_net_profit)/sum(ss_ext_sales_price) asc) as rank_within_parent - from - store_sales - ,date_dim d1 - ,item - ,store - where - d1.d_year = 2002 - and d1.d_date_sk = ss_sold_date_sk - and i_item_sk = ss_item_sk - and s_store_sk = ss_store_sk - and s_state in ('SD','TN','GA','SC', - 'MO','AL','MI','OH') - group by rollup(i_category,i_class) - order by - lochierarchy desc - ,case when lochierarchy = 0 then i_category end - ,rank_within_parent - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query36") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select + sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin + ,i_category + ,i_class + ,grouping(i_category)+grouping(i_class) as lochierarchy + ,rank() over ( + partition by grouping(i_category)+grouping(i_class), + case when grouping(i_class) = 0 then i_category end + order by sum(ss_net_profit)/sum(ss_ext_sales_price) asc) as rank_within_parent + from + store_sales + ,date_dim d1 + ,item + ,store + where + d1.d_year = 2002 + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and s_state in ('SD','TN','GA','SC', + 'MO','AL','MI','OH') + group by rollup(i_category,i_class) + order by + lochierarchy desc + ,case when lochierarchy = 0 then i_category end + ,rank_within_parent + limit 100""" + qt_ds_shape_36 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query37.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query37.groovy index 02ae80026c93f8..14cf074643c887 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query37.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query37.groovy @@ -1,56 +1,51 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query37") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_37 ''' - explain shape plan - - - - -select i_item_id - ,i_item_desc - ,i_current_price - from item, inventory, date_dim, catalog_sales - where i_current_price between 45 and 45 + 30 - and inv_item_sk = i_item_sk - and d_date_sk=inv_date_sk - and d_date between cast('1999-02-21' as date) and (cast('1999-02-21' as date) + interval 60 day) - and i_manufact_id in (856,707,1000,747) - and inv_quantity_on_hand between 100 and 500 - and cs_item_sk = i_item_sk - group by i_item_id,i_item_desc,i_current_price - order by i_item_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query37") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select i_item_id + ,i_item_desc + ,i_current_price + from item, inventory, date_dim, catalog_sales + where i_current_price between 45 and 45 + 30 + and inv_item_sk = i_item_sk + and d_date_sk=inv_date_sk + and d_date between cast('1999-02-21' as date) and (cast('1999-02-21' as date) + interval 60 day) + and i_manufact_id in (856,707,1000,747) + and inv_quantity_on_hand between 100 and 500 + and cs_item_sk = i_item_sk + group by i_item_id,i_item_desc,i_current_price + order by i_item_id + limit 100""" + qt_ds_shape_37 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query38.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query38.groovy index 55c5c396c5a37e..d24b6c0a5c2ea1 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query38.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query38.groovy @@ -1,62 +1,57 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query38") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_38 ''' - explain shape plan - - - - -select count(*) from ( - select distinct c_last_name, c_first_name, d_date - from store_sales, date_dim, customer - where store_sales.ss_sold_date_sk = date_dim.d_date_sk - and store_sales.ss_customer_sk = customer.c_customer_sk - and d_month_seq between 1183 and 1183 + 11 - intersect - select distinct c_last_name, c_first_name, d_date - from catalog_sales, date_dim, customer - where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk - and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk - and d_month_seq between 1183 and 1183 + 11 - intersect - select distinct c_last_name, c_first_name, d_date - from web_sales, date_dim, customer - where web_sales.ws_sold_date_sk = date_dim.d_date_sk - and web_sales.ws_bill_customer_sk = customer.c_customer_sk - and d_month_seq between 1183 and 1183 + 11 -) hot_cust -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query38") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select count(*) from ( + select distinct c_last_name, c_first_name, d_date + from store_sales, date_dim, customer + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_customer_sk = customer.c_customer_sk + and d_month_seq between 1183 and 1183 + 11 + intersect + select distinct c_last_name, c_first_name, d_date + from catalog_sales, date_dim, customer + where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk + and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1183 and 1183 + 11 + intersect + select distinct c_last_name, c_first_name, d_date + from web_sales, date_dim, customer + where web_sales.ws_sold_date_sk = date_dim.d_date_sk + and web_sales.ws_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1183 and 1183 + 11 +) hot_cust +limit 100""" + qt_ds_shape_38 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query39.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query39.groovy index eb172127909867..02c9981631b8e2 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query39.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query39.groovy @@ -1,67 +1,61 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query39") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_39 ''' - explain shape plan - - - - -with inv as -(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy - ,stdev,mean, case mean when 0 then null else stdev/mean end cov - from(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy - ,stddev_samp(inv_quantity_on_hand) stdev,avg(inv_quantity_on_hand) mean - from inventory - ,item - ,warehouse - ,date_dim - where inv_item_sk = i_item_sk - and inv_warehouse_sk = w_warehouse_sk - and inv_date_sk = d_date_sk - and d_year =1998 - group by w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy) foo - where case mean when 0 then 0 else stdev/mean end > 1) -select inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean, inv1.cov - ,inv2.w_warehouse_sk,inv2.i_item_sk,inv2.d_moy,inv2.mean, inv2.cov -from inv inv1,inv inv2 -where inv1.i_item_sk = inv2.i_item_sk - and inv1.w_warehouse_sk = inv2.w_warehouse_sk - and inv1.d_moy=1 - and inv2.d_moy=1+1 -order by inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean,inv1.cov - ,inv2.d_moy,inv2.mean, inv2.cov -; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query39") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """with inv as +(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stdev,mean, case mean when 0 then null else stdev/mean end cov + from(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stddev_samp(inv_quantity_on_hand) stdev,avg(inv_quantity_on_hand) mean + from inventory + ,item + ,warehouse + ,date_dim + where inv_item_sk = i_item_sk + and inv_warehouse_sk = w_warehouse_sk + and inv_date_sk = d_date_sk + and d_year =1998 + group by w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy) foo + where case mean when 0 then 0 else stdev/mean end > 1) +select inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean, inv1.cov + ,inv2.w_warehouse_sk,inv2.i_item_sk,inv2.d_moy,inv2.mean, inv2.cov +from inv inv1,inv inv2 +where inv1.i_item_sk = inv2.i_item_sk + and inv1.w_warehouse_sk = inv2.w_warehouse_sk + and inv1.d_moy=1 + and inv2.d_moy=1+1 +order by inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean,inv1.cov + ,inv2.d_moy,inv2.mean, inv2.cov""" + qt_ds_shape_39 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query4.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query4.groovy index 2abba2e90a443c..52cec28b1c0fe6 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query4.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query4.groovy @@ -24,18 +24,13 @@ suite("query4") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_4 ''' - explain shape plan - - -with year_total as ( + def ds = """with year_total as ( select c_customer_id customer_id ,c_first_name customer_first_name ,c_last_name customer_last_name @@ -147,7 +142,9 @@ union all ,t_s_secyear.customer_first_name ,t_s_secyear.customer_last_name ,t_s_secyear.customer_birth_country -limit 100; - - ''' +limit 100""" + qt_ds_shape_4 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query40.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query40.groovy index 63228f6d5d7dac..cb59410dbbf7e7 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query40.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query40.groovy @@ -1,66 +1,62 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query40") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_40 ''' - explain shape plan - - - -select - w_state - ,i_item_id - ,sum(case when (cast(d_date as date) < cast ('2001-04-02' as date)) - then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_before - ,sum(case when (cast(d_date as date) >= cast ('2001-04-02' as date)) - then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_after - from - catalog_sales left outer join catalog_returns on - (cs_order_number = cr_order_number - and cs_item_sk = cr_item_sk) - ,warehouse - ,item - ,date_dim - where - i_current_price between 0.99 and 1.49 - and i_item_sk = cs_item_sk - and cs_warehouse_sk = w_warehouse_sk - and cs_sold_date_sk = d_date_sk - and d_date between (cast ('2001-04-02' as date) - interval 30 day) - and (cast ('2001-04-02' as date) + interval 30 day) - group by - w_state,i_item_id - order by w_state,i_item_id -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query40") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select + w_state + ,i_item_id + ,sum(case when (cast(d_date as date) < cast ('2001-04-02' as date)) + then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_before + ,sum(case when (cast(d_date as date) >= cast ('2001-04-02' as date)) + then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_after + from + catalog_sales left outer join catalog_returns on + (cs_order_number = cr_order_number + and cs_item_sk = cr_item_sk) + ,warehouse + ,item + ,date_dim + where + i_current_price between 0.99 and 1.49 + and i_item_sk = cs_item_sk + and cs_warehouse_sk = w_warehouse_sk + and cs_sold_date_sk = d_date_sk + and d_date between (cast ('2001-04-02' as date) - interval 30 day) + and (cast ('2001-04-02' as date) + interval 30 day) + group by + w_state,i_item_id + order by w_state,i_item_id +limit 100""" + qt_ds_shape_40 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query41.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query41.groovy index d3fc39c9ad45f7..6e60b949f3f2d4 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query41.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query41.groovy @@ -24,20 +24,13 @@ suite("query41") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_41 ''' - explain shape plan - - - - -select distinct(i_product_name) + def ds = """select distinct(i_product_name) from item i1 where i_manufact_id between 748 and 748+40 and (select count(*) as item_cnt @@ -85,7 +78,9 @@ select distinct(i_product_name) (i_size = 'medium' or i_size = 'economy') )))) > 0 order by i_product_name - limit 100; - - ''' + limit 100""" + qt_ds_shape_41 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query42.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query42.groovy index 899777f1df7d6f..973746780eedc3 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query42.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query42.groovy @@ -1,61 +1,56 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query42") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_42 ''' - explain shape plan - - - - -select dt.d_year - ,item.i_category_id - ,item.i_category - ,sum(ss_ext_sales_price) - from date_dim dt - ,store_sales - ,item - where dt.d_date_sk = store_sales.ss_sold_date_sk - and store_sales.ss_item_sk = item.i_item_sk - and item.i_manager_id = 1 - and dt.d_moy=11 - and dt.d_year=2002 - group by dt.d_year - ,item.i_category_id - ,item.i_category - order by sum(ss_ext_sales_price) desc,dt.d_year - ,item.i_category_id - ,item.i_category -limit 100 ; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query42") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select dt.d_year + ,item.i_category_id + ,item.i_category + ,sum(ss_ext_sales_price) + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manager_id = 1 + and dt.d_moy=11 + and dt.d_year=2002 + group by dt.d_year + ,item.i_category_id + ,item.i_category + order by sum(ss_ext_sales_price) desc,dt.d_year + ,item.i_category_id + ,item.i_category +limit 100 """ + qt_ds_shape_42 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query43.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query43.groovy index ad59f1cdcfdb76..17df78e13550fc 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query43.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query43.groovy @@ -1,58 +1,53 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query43") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_43 ''' - explain shape plan - - - - -select s_store_name, s_store_id, - sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, - sum(case when (d_day_name='Monday') then ss_sales_price else null end) mon_sales, - sum(case when (d_day_name='Tuesday') then ss_sales_price else null end) tue_sales, - sum(case when (d_day_name='Wednesday') then ss_sales_price else null end) wed_sales, - sum(case when (d_day_name='Thursday') then ss_sales_price else null end) thu_sales, - sum(case when (d_day_name='Friday') then ss_sales_price else null end) fri_sales, - sum(case when (d_day_name='Saturday') then ss_sales_price else null end) sat_sales - from date_dim, store_sales, store - where d_date_sk = ss_sold_date_sk and - s_store_sk = ss_store_sk and - s_gmt_offset = -5 and - d_year = 2000 - group by s_store_name, s_store_id - order by s_store_name, s_store_id,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query43") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select s_store_name, s_store_id, + sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, + sum(case when (d_day_name='Monday') then ss_sales_price else null end) mon_sales, + sum(case when (d_day_name='Tuesday') then ss_sales_price else null end) tue_sales, + sum(case when (d_day_name='Wednesday') then ss_sales_price else null end) wed_sales, + sum(case when (d_day_name='Thursday') then ss_sales_price else null end) thu_sales, + sum(case when (d_day_name='Friday') then ss_sales_price else null end) fri_sales, + sum(case when (d_day_name='Saturday') then ss_sales_price else null end) sat_sales + from date_dim, store_sales, store + where d_date_sk = ss_sold_date_sk and + s_store_sk = ss_store_sk and + s_gmt_offset = -5 and + d_year = 2000 + group by s_store_name, s_store_id + order by s_store_name, s_store_id,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales + limit 100""" + qt_ds_shape_43 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query44.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query44.groovy index 4a77994da37718..1354a72cce7cda 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query44.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query44.groovy @@ -24,20 +24,13 @@ suite("query44") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_44 ''' - explain shape plan - - - - -select asceding.rnk, i1.i_product_name best_performing, i2.i_product_name worst_performing + def ds = """select asceding.rnk, i1.i_product_name best_performing, i2.i_product_name worst_performing from(select * from (select item_sk,rank() over (order by rank_col asc) rnk from (select ss_item_sk item_sk,avg(ss_net_profit) rank_col @@ -68,7 +61,9 @@ where asceding.rnk = descending.rnk and i1.i_item_sk=asceding.item_sk and i2.i_item_sk=descending.item_sk order by asceding.rnk -limit 100; - - ''' +limit 100""" + qt_ds_shape_44 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query45.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query45.groovy index cb824fe612e37f..09c0628f59514d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query45.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query45.groovy @@ -1,59 +1,54 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query45") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_45 ''' - explain shape plan - - - - -select ca_zip, ca_city, sum(ws_sales_price) - from web_sales, customer, customer_address, date_dim, item - where ws_bill_customer_sk = c_customer_sk - and c_current_addr_sk = ca_address_sk - and ws_item_sk = i_item_sk - and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', '85392', '85460', '80348', '81792') - or - i_item_id in (select i_item_id - from item - where i_item_sk in (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) - ) - ) - and ws_sold_date_sk = d_date_sk - and d_qoy = 2 and d_year = 2000 - group by ca_zip, ca_city - order by ca_zip, ca_city - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query45") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select ca_zip, ca_city, sum(ws_sales_price) + from web_sales, customer, customer_address, date_dim, item + where ws_bill_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and ws_item_sk = i_item_sk + and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', '85392', '85460', '80348', '81792') + or + i_item_id in (select i_item_id + from item + where i_item_sk in (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) + ) + ) + and ws_sold_date_sk = d_date_sk + and d_qoy = 2 and d_year = 2000 + group by ca_zip, ca_city + order by ca_zip, ca_city + limit 100""" + qt_ds_shape_45 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query46.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query46.groovy index fd827da51f656c..730f6aa8503cf9 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query46.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query46.groovy @@ -24,20 +24,13 @@ suite("query46") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_46 ''' - explain shape plan - - - - -select c_last_name + def ds = """select c_last_name ,c_first_name ,ca_city ,bought_city @@ -68,7 +61,9 @@ select c_last_name ,ca_city ,bought_city ,ss_ticket_number - limit 100; - - ''' + limit 100""" + qt_ds_shape_46 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query47.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query47.groovy index 92a2dcb2cefb6e..bf57817220b2b6 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query47.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query47.groovy @@ -24,18 +24,13 @@ suite("query47") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_47 ''' - explain shape plan - - -with v1 as( + def ds = """with v1 as( select i_category, i_brand, s_store_name, s_company_name, d_year, d_moy, @@ -82,7 +77,9 @@ with v1 as( avg_monthly_sales > 0 and case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 order by sum_sales - avg_monthly_sales, nsum - limit 100; - - ''' + limit 100""" + qt_ds_shape_47 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query48.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query48.groovy index 1f38ed58c4a917..4232fa98c81caa 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query48.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query48.groovy @@ -24,20 +24,13 @@ suite("query48") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_48 ''' - explain shape plan - - - - -select sum (ss_quantity) + def ds = """select sum (ss_quantity) from store_sales, store, customer_demographics, customer_address, date_dim where s_store_sk = ss_store_sk and ss_sold_date_sk = d_date_sk and d_year = 1999 @@ -100,7 +93,9 @@ select sum (ss_quantity) and ss_net_profit between 50 and 25000 ) ) -; - - ''' +""" + qt_ds_shape_48 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query49.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query49.groovy index 6300b61cf1a284..88c0bee485ce54 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query49.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query49.groovy @@ -24,20 +24,13 @@ suite("query49") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_49 ''' - explain shape plan - - - - -select channel, item, return_ratio, return_rank, currency_rank from + def ds = """select channel, item, return_ratio, return_rank, currency_rank from (select 'web' as channel ,web.item @@ -162,7 +155,9 @@ select channel, item, return_ratio, return_rank, currency_rank from ) ) t order by 1,4,5,2 - limit 100; - - ''' + limit 100""" + qt_ds_shape_49 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query5.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query5.groovy index d3db552ce6e5e0..2f080da648e330 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query5.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query5.groovy @@ -24,20 +24,13 @@ suite("query5") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_5 ''' - explain shape plan - - - - -with ssr as + def ds = """with ssr as (select s_store_id, sum(sales_price) as sales, sum(profit) as profit, @@ -161,7 +154,9 @@ with ssr as group by rollup (channel, id) order by channel ,id - limit 100; - - ''' + limit 100""" + qt_ds_shape_5 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query50.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query50.groovy index c56b6dd24738e9..c84f8d11f2f405 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query50.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query50.groovy @@ -24,20 +24,13 @@ suite("query50") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_50 ''' - explain shape plan - - - - -select + def ds = """select s_store_name ,s_company_id ,s_street_number @@ -92,7 +85,9 @@ order by s_store_name ,s_county ,s_state ,s_zip -limit 100; - - ''' +limit 100""" + qt_ds_shape_50 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query51.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query51.groovy index 073413018db6f7..5952e5f1a78b9e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query51.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query51.groovy @@ -24,20 +24,13 @@ suite("query51") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_51 ''' - explain shape plan - - - - -WITH web_v1 as ( + def ds = """WITH web_v1 as ( select ws_item_sk item_sk, d_date, sum(sum(ws_sales_price)) @@ -78,7 +71,9 @@ from (select item_sk where web_cumulative > store_cumulative order by item_sk ,d_date -limit 100; - - ''' +limit 100""" + qt_ds_shape_51 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query52.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query52.groovy index a0403cecbf9b6b..cf69c790fa0935 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query52.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query52.groovy @@ -1,61 +1,56 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query52") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_52 ''' - explain shape plan - - - - -select dt.d_year - ,item.i_brand_id brand_id - ,item.i_brand brand - ,sum(ss_ext_sales_price) ext_price - from date_dim dt - ,store_sales - ,item - where dt.d_date_sk = store_sales.ss_sold_date_sk - and store_sales.ss_item_sk = item.i_item_sk - and item.i_manager_id = 1 - and dt.d_moy=12 - and dt.d_year=2002 - group by dt.d_year - ,item.i_brand - ,item.i_brand_id - order by dt.d_year - ,ext_price desc - ,brand_id -limit 100 ; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query52") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select dt.d_year + ,item.i_brand_id brand_id + ,item.i_brand brand + ,sum(ss_ext_sales_price) ext_price + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manager_id = 1 + and dt.d_moy=12 + and dt.d_year=2002 + group by dt.d_year + ,item.i_brand + ,item.i_brand_id + order by dt.d_year + ,ext_price desc + ,brand_id +limit 100 """ + qt_ds_shape_52 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query53.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query53.groovy index af4bd5686e3aa2..795a00ddbeb58c 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query53.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query53.groovy @@ -1,67 +1,62 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query53") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_53 ''' - explain shape plan - - - - -select * from -(select i_manufact_id, -sum(ss_sales_price) sum_sales, -avg(sum(ss_sales_price)) over (partition by i_manufact_id) avg_quarterly_sales -from item, store_sales, date_dim, store -where ss_item_sk = i_item_sk and -ss_sold_date_sk = d_date_sk and -ss_store_sk = s_store_sk and -d_month_seq in (1200,1200+1,1200+2,1200+3,1200+4,1200+5,1200+6,1200+7,1200+8,1200+9,1200+10,1200+11) and -((i_category in ('Books','Children','Electronics') and -i_class in ('personal','portable','reference','self-help') and -i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', - 'exportiunivamalg #9','scholaramalgamalg #9')) -or(i_category in ('Women','Music','Men') and -i_class in ('accessories','classical','fragrances','pants') and -i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', - 'importoamalg #1'))) -group by i_manufact_id, d_qoy ) tmp1 -where case when avg_quarterly_sales > 0 - then abs (sum_sales - avg_quarterly_sales)/ avg_quarterly_sales - else null end > 0.1 -order by avg_quarterly_sales, - sum_sales, - i_manufact_id -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query53") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select * from +(select i_manufact_id, +sum(ss_sales_price) sum_sales, +avg(sum(ss_sales_price)) over (partition by i_manufact_id) avg_quarterly_sales +from item, store_sales, date_dim, store +where ss_item_sk = i_item_sk and +ss_sold_date_sk = d_date_sk and +ss_store_sk = s_store_sk and +d_month_seq in (1200,1200+1,1200+2,1200+3,1200+4,1200+5,1200+6,1200+7,1200+8,1200+9,1200+10,1200+11) and +((i_category in ('Books','Children','Electronics') and +i_class in ('personal','portable','reference','self-help') and +i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', + 'exportiunivamalg #9','scholaramalgamalg #9')) +or(i_category in ('Women','Music','Men') and +i_class in ('accessories','classical','fragrances','pants') and +i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', + 'importoamalg #1'))) +group by i_manufact_id, d_qoy ) tmp1 +where case when avg_quarterly_sales > 0 + then abs (sum_sales - avg_quarterly_sales)/ avg_quarterly_sales + else null end > 0.1 +order by avg_quarterly_sales, + sum_sales, + i_manufact_id +limit 100""" + qt_ds_shape_53 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query54.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query54.groovy index 53f42db8f33e6e..a180a9a2574ebe 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query54.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query54.groovy @@ -24,20 +24,13 @@ suite("query54") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_54 ''' - explain shape plan - - - - -with my_customers as ( + def ds = """with my_customers as ( select distinct c_customer_sk , c_current_addr_sk from @@ -89,7 +82,9 @@ with my_customers as ( from segments group by segment order by segment, num_customers - limit 100; - - ''' + limit 100""" + qt_ds_shape_54 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query55.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query55.groovy index b7104769074e63..b38174e118d44e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query55.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query55.groovy @@ -1,53 +1,48 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query55") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_55 ''' - explain shape plan - - - - -select i_brand_id brand_id, i_brand brand, - sum(ss_ext_sales_price) ext_price - from date_dim, store_sales, item - where d_date_sk = ss_sold_date_sk - and ss_item_sk = i_item_sk - and i_manager_id=100 - and d_moy=12 - and d_year=2000 - group by i_brand, i_brand_id - order by ext_price desc, i_brand_id -limit 100 ; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query55") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select i_brand_id brand_id, i_brand brand, + sum(ss_ext_sales_price) ext_price + from date_dim, store_sales, item + where d_date_sk = ss_sold_date_sk + and ss_item_sk = i_item_sk + and i_manager_id=100 + and d_moy=12 + and d_year=2000 + group by i_brand, i_brand_id + order by ext_price desc, i_brand_id +limit 100 """ + qt_ds_shape_55 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query56.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query56.groovy index 3dab74dbd790fa..dc56d6510f5aa2 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query56.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query56.groovy @@ -24,20 +24,13 @@ suite("query56") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_56 ''' - explain shape plan - - - - -with ss as ( + def ds = """with ss as ( select i_item_id,sum(ss_ext_sales_price) total_sales from store_sales, @@ -102,7 +95,9 @@ where i_color in ('powder','green','cyan')) group by i_item_id order by total_sales, i_item_id - limit 100; - - ''' + limit 100""" + qt_ds_shape_56 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query57.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query57.groovy index 7f3c4b60601dae..5f24ea904aa7a6 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query57.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query57.groovy @@ -24,19 +24,13 @@ suite("query57") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_57 ''' - explain shape plan - - - -with v1 as( + def ds = """with v1 as( select i_category, i_brand, cc_name, d_year, d_moy, @@ -80,7 +74,9 @@ with v1 as( avg_monthly_sales > 0 and case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 order by sum_sales - avg_monthly_sales, nsum - limit 100; - - ''' + limit 100""" + qt_ds_shape_57 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query58.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query58.groovy index 30b9f02589566e..9ca8abe1656fbc 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query58.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query58.groovy @@ -24,20 +24,13 @@ suite("query58") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_58 ''' - explain shape plan - - - - -with ss_items as + def ds = """with ss_items as (select i_item_id item_id ,sum(ss_ext_sales_price) ss_item_rev from store_sales @@ -98,7 +91,9 @@ with ss_items as and ws_item_rev between 0.9 * cs_item_rev and 1.1 * cs_item_rev order by item_id ,ss_item_rev - limit 100; - - ''' + limit 100""" + qt_ds_shape_58 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query59.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query59.groovy index 2dc8125312744f..82cc9e20f5a10a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query59.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query59.groovy @@ -24,19 +24,13 @@ suite("query59") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_59 ''' - explain shape plan - - - -with wss as + def ds = """with wss as (select d_week_seq, ss_store_sk, sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, @@ -76,7 +70,9 @@ with wss as where s_store_id1=s_store_id2 and d_week_seq1=d_week_seq2-52 order by s_store_name1,s_store_id1,d_week_seq1 -limit 100; - - ''' +limit 100""" + qt_ds_shape_59 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query6.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query6.groovy index b07601916786b7..5705e44e38ffd8 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query6.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query6.groovy @@ -1,68 +1,60 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query6") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - // TODO: uncomment following line to get better shape - // sql 'set max_join_number_bushy_tree=6' - - qt_ds_shape_6 ''' - explain shape plan - - - - -select a.ca_state state, count(*) cnt - from customer_address a - ,customer c - ,store_sales s - ,date_dim d - ,item i - where a.ca_address_sk = c.c_current_addr_sk - and c.c_customer_sk = s.ss_customer_sk - and s.ss_sold_date_sk = d.d_date_sk - and s.ss_item_sk = i.i_item_sk - and d.d_month_seq = - (select distinct (d_month_seq) - from date_dim - where d_year = 2002 - and d_moy = 3 ) - and i.i_current_price > 1.2 * - (select avg(j.i_current_price) - from item j - where j.i_category = i.i_category) - group by a.ca_state - having count(*) >= 10 - order by cnt, a.ca_state - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query6") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select a.ca_state state, count(*) cnt + from customer_address a + ,customer c + ,store_sales s + ,date_dim d + ,item i + where a.ca_address_sk = c.c_current_addr_sk + and c.c_customer_sk = s.ss_customer_sk + and s.ss_sold_date_sk = d.d_date_sk + and s.ss_item_sk = i.i_item_sk + and d.d_month_seq = + (select distinct (d_month_seq) + from date_dim + where d_year = 2002 + and d_moy = 3 ) + and i.i_current_price > 1.2 * + (select avg(j.i_current_price) + from item j + where j.i_category = i.i_category) + group by a.ca_state + having count(*) >= 10 + order by cnt, a.ca_state + limit 100""" + qt_ds_shape_6 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query60.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query60.groovy index 5200d3b4fc78b5..93cdee48ee7ba0 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query60.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query60.groovy @@ -24,20 +24,13 @@ suite("query60") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_60 ''' - explain shape plan - - - - -with ss as ( + def ds = """with ss as ( select i_item_id,sum(ss_ext_sales_price) total_sales from @@ -111,7 +104,9 @@ where i_category in ('Children')) group by i_item_id order by i_item_id ,total_sales - limit 100; - - ''' + limit 100""" + qt_ds_shape_60 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query61.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query61.groovy index 356b0e2e5579e3..6b42a2e47921dc 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query61.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query61.groovy @@ -24,20 +24,13 @@ suite("query61") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_61 ''' - explain shape plan - - - - -select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100 + def ds = """select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100 from (select sum(ss_ext_sales_price) promotions from store_sales @@ -77,7 +70,9 @@ from and d_year = 1999 and d_moy = 11) all_sales order by promotions, total -limit 100; - - ''' +limit 100""" + qt_ds_shape_61 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query62.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query62.groovy index 3b90426c667f2b..c2165a11915ec4 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query62.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query62.groovy @@ -24,20 +24,13 @@ suite("query62") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_62 ''' - explain shape plan - - - - -select + def ds = """select substr(w_warehouse_name,1,20) ,sm_type ,web_name @@ -68,7 +61,9 @@ group by order by substr(w_warehouse_name,1,20) ,sm_type ,web_name -limit 100; - - ''' +limit 100""" + qt_ds_shape_62 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query63.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query63.groovy index 7b490b972ae625..2939a42b8cba6e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query63.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query63.groovy @@ -1,68 +1,63 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query63") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_63 ''' - explain shape plan - - - - -select * -from (select i_manager_id - ,sum(ss_sales_price) sum_sales - ,avg(sum(ss_sales_price)) over (partition by i_manager_id) avg_monthly_sales - from item - ,store_sales - ,date_dim - ,store - where ss_item_sk = i_item_sk - and ss_sold_date_sk = d_date_sk - and ss_store_sk = s_store_sk - and d_month_seq in (1181,1181+1,1181+2,1181+3,1181+4,1181+5,1181+6,1181+7,1181+8,1181+9,1181+10,1181+11) - and (( i_category in ('Books','Children','Electronics') - and i_class in ('personal','portable','reference','self-help') - and i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', - 'exportiunivamalg #9','scholaramalgamalg #9')) - or( i_category in ('Women','Music','Men') - and i_class in ('accessories','classical','fragrances','pants') - and i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', - 'importoamalg #1'))) -group by i_manager_id, d_moy) tmp1 -where case when avg_monthly_sales > 0 then abs (sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 -order by i_manager_id - ,avg_monthly_sales - ,sum_sales -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query63") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select * +from (select i_manager_id + ,sum(ss_sales_price) sum_sales + ,avg(sum(ss_sales_price)) over (partition by i_manager_id) avg_monthly_sales + from item + ,store_sales + ,date_dim + ,store + where ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and ss_store_sk = s_store_sk + and d_month_seq in (1181,1181+1,1181+2,1181+3,1181+4,1181+5,1181+6,1181+7,1181+8,1181+9,1181+10,1181+11) + and (( i_category in ('Books','Children','Electronics') + and i_class in ('personal','portable','reference','self-help') + and i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', + 'exportiunivamalg #9','scholaramalgamalg #9')) + or( i_category in ('Women','Music','Men') + and i_class in ('accessories','classical','fragrances','pants') + and i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', + 'importoamalg #1'))) +group by i_manager_id, d_moy) tmp1 +where case when avg_monthly_sales > 0 then abs (sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 +order by i_manager_id + ,avg_monthly_sales + ,sum_sales +limit 100""" + qt_ds_shape_63 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query64.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query64.groovy index 8da53b0a62c47c..fa2aad18ea75c1 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query64.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query64.groovy @@ -24,135 +24,132 @@ suite("query64") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - def ds64 = ''' - with cs_ui as - (select cs_item_sk - ,sum(cs_ext_list_price) as sale,sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit) as refund - from catalog_sales - ,catalog_returns - where cs_item_sk = cr_item_sk - and cs_order_number = cr_order_number - group by cs_item_sk - having sum(cs_ext_list_price)>2*sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit)), - cross_sales as - (select i_product_name product_name - ,i_item_sk item_sk - ,s_store_name store_name - ,s_zip store_zip - ,ad1.ca_street_number b_street_number - ,ad1.ca_street_name b_street_name - ,ad1.ca_city b_city - ,ad1.ca_zip b_zip - ,ad2.ca_street_number c_street_number - ,ad2.ca_street_name c_street_name - ,ad2.ca_city c_city - ,ad2.ca_zip c_zip - ,d1.d_year as syear - ,d2.d_year as fsyear - ,d3.d_year s2year - ,count(*) cnt - ,sum(ss_wholesale_cost) s1 - ,sum(ss_list_price) s2 - ,sum(ss_coupon_amt) s3 - FROM store_sales - ,store_returns - ,cs_ui - ,date_dim d1 - ,date_dim d2 - ,date_dim d3 - ,store - ,customer - ,customer_demographics cd1 - ,customer_demographics cd2 - ,promotion - ,household_demographics hd1 - ,household_demographics hd2 - ,customer_address ad1 - ,customer_address ad2 - ,income_band ib1 - ,income_band ib2 - ,item - WHERE ss_store_sk = s_store_sk AND - ss_sold_date_sk = d1.d_date_sk AND - ss_customer_sk = c_customer_sk AND - ss_cdemo_sk= cd1.cd_demo_sk AND - ss_hdemo_sk = hd1.hd_demo_sk AND - ss_addr_sk = ad1.ca_address_sk and - ss_item_sk = i_item_sk and - ss_item_sk = sr_item_sk and - ss_ticket_number = sr_ticket_number and - ss_item_sk = cs_ui.cs_item_sk and - c_current_cdemo_sk = cd2.cd_demo_sk AND - c_current_hdemo_sk = hd2.hd_demo_sk AND - c_current_addr_sk = ad2.ca_address_sk and - c_first_sales_date_sk = d2.d_date_sk and - c_first_shipto_date_sk = d3.d_date_sk and - ss_promo_sk = p_promo_sk and - hd1.hd_income_band_sk = ib1.ib_income_band_sk and - hd2.hd_income_band_sk = ib2.ib_income_band_sk and - cd1.cd_marital_status <> cd2.cd_marital_status and - i_color in ('blanched','medium','brown','chocolate','burlywood','drab') and - i_current_price between 23 and 23 + 10 and - i_current_price between 23 + 1 and 23 + 15 - group by i_product_name - ,i_item_sk - ,s_store_name - ,s_zip - ,ad1.ca_street_number - ,ad1.ca_street_name - ,ad1.ca_city - ,ad1.ca_zip - ,ad2.ca_street_number - ,ad2.ca_street_name - ,ad2.ca_city - ,ad2.ca_zip - ,d1.d_year - ,d2.d_year - ,d3.d_year - ) - select cs1.product_name - ,cs1.store_name - ,cs1.store_zip - ,cs1.b_street_number - ,cs1.b_street_name - ,cs1.b_city - ,cs1.b_zip - ,cs1.c_street_number - ,cs1.c_street_name - ,cs1.c_city - ,cs1.c_zip - ,cs1.syear - ,cs1.cnt - ,cs1.s1 as s11 - ,cs1.s2 as s21 - ,cs1.s3 as s31 - ,cs2.s1 as s12 - ,cs2.s2 as s22 - ,cs2.s3 as s32 - ,cs2.syear - ,cs2.cnt - from cross_sales cs1,cross_sales cs2 - where cs1.item_sk=cs2.item_sk and - cs1.syear = 2001 and - cs2.syear = 2001 + 1 and - cs2.cnt <= cs1.cnt and - cs1.store_name = cs2.store_name and - cs1.store_zip = cs2.store_zip - order by cs1.product_name - ,cs1.store_name - ,cs2.cnt - ,cs1.s1 - ,cs2.s1; - - ''' - - qt_ds_shape_64 'explain shape plan ' + ds64 + sql 'set enable_runtime_filter_prune=true' + def ds = """with cs_ui as + (select cs_item_sk + ,sum(cs_ext_list_price) as sale,sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit) as refund + from catalog_sales + ,catalog_returns + where cs_item_sk = cr_item_sk + and cs_order_number = cr_order_number + group by cs_item_sk + having sum(cs_ext_list_price)>2*sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit)), +cross_sales as + (select i_product_name product_name + ,i_item_sk item_sk + ,s_store_name store_name + ,s_zip store_zip + ,ad1.ca_street_number b_street_number + ,ad1.ca_street_name b_street_name + ,ad1.ca_city b_city + ,ad1.ca_zip b_zip + ,ad2.ca_street_number c_street_number + ,ad2.ca_street_name c_street_name + ,ad2.ca_city c_city + ,ad2.ca_zip c_zip + ,d1.d_year as syear + ,d2.d_year as fsyear + ,d3.d_year s2year + ,count(*) cnt + ,sum(ss_wholesale_cost) s1 + ,sum(ss_list_price) s2 + ,sum(ss_coupon_amt) s3 + FROM store_sales + ,store_returns + ,cs_ui + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,customer + ,customer_demographics cd1 + ,customer_demographics cd2 + ,promotion + ,household_demographics hd1 + ,household_demographics hd2 + ,customer_address ad1 + ,customer_address ad2 + ,income_band ib1 + ,income_band ib2 + ,item + WHERE ss_store_sk = s_store_sk AND + ss_sold_date_sk = d1.d_date_sk AND + ss_customer_sk = c_customer_sk AND + ss_cdemo_sk= cd1.cd_demo_sk AND + ss_hdemo_sk = hd1.hd_demo_sk AND + ss_addr_sk = ad1.ca_address_sk and + ss_item_sk = i_item_sk and + ss_item_sk = sr_item_sk and + ss_ticket_number = sr_ticket_number and + ss_item_sk = cs_ui.cs_item_sk and + c_current_cdemo_sk = cd2.cd_demo_sk AND + c_current_hdemo_sk = hd2.hd_demo_sk AND + c_current_addr_sk = ad2.ca_address_sk and + c_first_sales_date_sk = d2.d_date_sk and + c_first_shipto_date_sk = d3.d_date_sk and + ss_promo_sk = p_promo_sk and + hd1.hd_income_band_sk = ib1.ib_income_band_sk and + hd2.hd_income_band_sk = ib2.ib_income_band_sk and + cd1.cd_marital_status <> cd2.cd_marital_status and + i_color in ('blanched','medium','brown','chocolate','burlywood','drab') and + i_current_price between 23 and 23 + 10 and + i_current_price between 23 + 1 and 23 + 15 +group by i_product_name + ,i_item_sk + ,s_store_name + ,s_zip + ,ad1.ca_street_number + ,ad1.ca_street_name + ,ad1.ca_city + ,ad1.ca_zip + ,ad2.ca_street_number + ,ad2.ca_street_name + ,ad2.ca_city + ,ad2.ca_zip + ,d1.d_year + ,d2.d_year + ,d3.d_year +) +select cs1.product_name + ,cs1.store_name + ,cs1.store_zip + ,cs1.b_street_number + ,cs1.b_street_name + ,cs1.b_city + ,cs1.b_zip + ,cs1.c_street_number + ,cs1.c_street_name + ,cs1.c_city + ,cs1.c_zip + ,cs1.syear + ,cs1.cnt + ,cs1.s1 as s11 + ,cs1.s2 as s21 + ,cs1.s3 as s31 + ,cs2.s1 as s12 + ,cs2.s2 as s22 + ,cs2.s3 as s32 + ,cs2.syear + ,cs2.cnt +from cross_sales cs1,cross_sales cs2 +where cs1.item_sk=cs2.item_sk and + cs1.syear = 2001 and + cs2.syear = 2001 + 1 and + cs2.cnt <= cs1.cnt and + cs1.store_name = cs2.store_name and + cs1.store_zip = cs2.store_zip +order by cs1.product_name + ,cs1.store_name + ,cs2.cnt + ,cs1.s1 + ,cs2.s1""" + qt_ds_shape_64 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query65.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query65.groovy index 6cb89c6440ce4c..24771fa55eec10 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query65.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query65.groovy @@ -1,68 +1,63 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query65") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_65 ''' - explain shape plan - - - - -select - s_store_name, - i_item_desc, - sc.revenue, - i_current_price, - i_wholesale_cost, - i_brand - from store, item, - (select ss_store_sk, avg(revenue) as ave - from - (select ss_store_sk, ss_item_sk, - sum(ss_sales_price) as revenue - from store_sales, date_dim - where ss_sold_date_sk = d_date_sk and d_month_seq between 1221 and 1221+11 - group by ss_store_sk, ss_item_sk) sa - group by ss_store_sk) sb, - (select ss_store_sk, ss_item_sk, sum(ss_sales_price) as revenue - from store_sales, date_dim - where ss_sold_date_sk = d_date_sk and d_month_seq between 1221 and 1221+11 - group by ss_store_sk, ss_item_sk) sc - where sb.ss_store_sk = sc.ss_store_sk and - sc.revenue <= 0.1 * sb.ave and - s_store_sk = sc.ss_store_sk and - i_item_sk = sc.ss_item_sk - order by s_store_name, i_item_desc -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query65") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select + s_store_name, + i_item_desc, + sc.revenue, + i_current_price, + i_wholesale_cost, + i_brand + from store, item, + (select ss_store_sk, avg(revenue) as ave + from + (select ss_store_sk, ss_item_sk, + sum(ss_sales_price) as revenue + from store_sales, date_dim + where ss_sold_date_sk = d_date_sk and d_month_seq between 1221 and 1221+11 + group by ss_store_sk, ss_item_sk) sa + group by ss_store_sk) sb, + (select ss_store_sk, ss_item_sk, sum(ss_sales_price) as revenue + from store_sales, date_dim + where ss_sold_date_sk = d_date_sk and d_month_seq between 1221 and 1221+11 + group by ss_store_sk, ss_item_sk) sc + where sb.ss_store_sk = sc.ss_store_sk and + sc.revenue <= 0.1 * sb.ave and + s_store_sk = sc.ss_store_sk and + i_item_sk = sc.ss_item_sk + order by s_store_name, i_item_desc +limit 100""" + qt_ds_shape_65 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query66.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query66.groovy index 59b09fbed16955..57fd99eb3ba4e3 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query66.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query66.groovy @@ -24,20 +24,13 @@ suite("query66") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_66 ''' - explain shape plan - - - - -select + def ds = """select w_warehouse_name ,w_warehouse_sq_ft ,w_city @@ -253,7 +246,9 @@ select ,ship_carriers ,year order by w_warehouse_name - limit 100; - - ''' + limit 100""" + qt_ds_shape_66 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query67.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query67.groovy index 44cebfe9d96a81..6c5074fe06206d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query67.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query67.groovy @@ -24,20 +24,13 @@ suite("query67") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_67 ''' - explain shape plan - - - - -select * + def ds = """select * from (select i_category ,i_class ,i_brand @@ -77,7 +70,9 @@ order by i_category ,s_store_id ,sumsales ,rk -limit 100; - - ''' +limit 100""" + qt_ds_shape_67 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query68.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query68.groovy index 7d19e5bb837b77..e8741096ec9f48 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query68.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query68.groovy @@ -24,20 +24,13 @@ suite("query68") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_68 ''' - explain shape plan - - - - -select c_last_name + def ds = """select c_last_name ,c_first_name ,ca_city ,bought_city @@ -75,7 +68,9 @@ select c_last_name and current_addr.ca_city <> bought_city order by c_last_name ,ss_ticket_number - limit 100; - - ''' + limit 100""" + qt_ds_shape_68 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query69.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query69.groovy index 8430472077a5af..924233aaef7453 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query69.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query69.groovy @@ -24,20 +24,13 @@ suite("query69") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_69 ''' - explain shape plan - - - - -select + def ds = """select cd_gender, cd_marital_status, cd_education_status, @@ -80,7 +73,9 @@ select cd_education_status, cd_purchase_estimate, cd_credit_rating - limit 100; - - ''' + limit 100""" + qt_ds_shape_69 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query7.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query7.groovy index ba22eb82c73af7..72ae3d473703df 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query7.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query7.groovy @@ -1,60 +1,55 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query7") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_7 ''' - explain shape plan - - - - -select i_item_id, - avg(ss_quantity) agg1, - avg(ss_list_price) agg2, - avg(ss_coupon_amt) agg3, - avg(ss_sales_price) agg4 - from store_sales, customer_demographics, date_dim, item, promotion - where ss_sold_date_sk = d_date_sk and - ss_item_sk = i_item_sk and - ss_cdemo_sk = cd_demo_sk and - ss_promo_sk = p_promo_sk and - cd_gender = 'F' and - cd_marital_status = 'W' and - cd_education_status = 'College' and - (p_channel_email = 'N' or p_channel_event = 'N') and - d_year = 2001 - group by i_item_id - order by i_item_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query7") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select i_item_id, + avg(ss_quantity) agg1, + avg(ss_list_price) agg2, + avg(ss_coupon_amt) agg3, + avg(ss_sales_price) agg4 + from store_sales, customer_demographics, date_dim, item, promotion + where ss_sold_date_sk = d_date_sk and + ss_item_sk = i_item_sk and + ss_cdemo_sk = cd_demo_sk and + ss_promo_sk = p_promo_sk and + cd_gender = 'F' and + cd_marital_status = 'W' and + cd_education_status = 'College' and + (p_channel_email = 'N' or p_channel_event = 'N') and + d_year = 2001 + group by i_item_id + order by i_item_id + limit 100""" + qt_ds_shape_7 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query70.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query70.groovy index 9c937ef3c91936..f6859362c84b6b 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query70.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query70.groovy @@ -24,20 +24,13 @@ suite("query70") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_70 ''' - explain shape plan - - - - -select + def ds = """select sum(ss_net_profit) as total_sum ,s_state ,s_county @@ -71,7 +64,9 @@ select lochierarchy desc ,case when lochierarchy = 0 then s_state end ,rank_within_parent - limit 100; - - ''' + limit 100""" + qt_ds_shape_70 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query71.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query71.groovy index c49a18f8e95790..dddc1784cef109 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query71.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query71.groovy @@ -24,20 +24,13 @@ suite("query71") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_71 ''' - explain shape plan - - - - -select i_brand_id brand_id, i_brand brand,t_hour,t_minute, + def ds = """select i_brand_id brand_id, i_brand brand,t_hour,t_minute, sum(ext_price) ext_price from item, (select ws_ext_sales_price as ext_price, ws_sold_date_sk as sold_date_sk, @@ -73,7 +66,9 @@ select i_brand_id brand_id, i_brand brand,t_hour,t_minute, and (t_meal_time = 'breakfast' or t_meal_time = 'dinner') group by i_brand, i_brand_id,t_hour,t_minute order by ext_price desc, i_brand_id - ; - - ''' + """ + qt_ds_shape_71 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query72.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query72.groovy index 7c8099b3315a5c..9449ed4c45f89e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query72.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query72.groovy @@ -1,68 +1,63 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query72") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_72 ''' - explain shape plan - - - - -select i_item_desc - ,w_warehouse_name - ,d1.d_week_seq - ,sum(case when p_promo_sk is null then 1 else 0 end) no_promo - ,sum(case when p_promo_sk is not null then 1 else 0 end) promo - ,count(*) total_cnt -from catalog_sales -join inventory on (cs_item_sk = inv_item_sk) -join warehouse on (w_warehouse_sk=inv_warehouse_sk) -join item on (i_item_sk = cs_item_sk) -join customer_demographics on (cs_bill_cdemo_sk = cd_demo_sk) -join household_demographics on (cs_bill_hdemo_sk = hd_demo_sk) -join date_dim d1 on (cs_sold_date_sk = d1.d_date_sk) -join date_dim d2 on (inv_date_sk = d2.d_date_sk) -join date_dim d3 on (cs_ship_date_sk = d3.d_date_sk) -left outer join promotion on (cs_promo_sk=p_promo_sk) -left outer join catalog_returns on (cr_item_sk = cs_item_sk and cr_order_number = cs_order_number) -where d1.d_week_seq = d2.d_week_seq - and inv_quantity_on_hand < cs_quantity - and d3.d_date > d1.d_date + 5 - and hd_buy_potential = '501-1000' - and d1.d_year = 2002 - and cd_marital_status = 'W' -group by i_item_desc,w_warehouse_name,d1.d_week_seq -order by total_cnt desc, i_item_desc, w_warehouse_name, d_week_seq -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query72") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select /*+ SET_VAR(max_join_number_bushy_tree=10, memo_max_group_expression_size=15000)*/ i_item_desc + ,w_warehouse_name + ,d1.d_week_seq + ,sum(case when p_promo_sk is null then 1 else 0 end) no_promo + ,sum(case when p_promo_sk is not null then 1 else 0 end) promo + ,count(*) total_cnt +from catalog_sales +join inventory on (cs_item_sk = inv_item_sk) +join warehouse on (w_warehouse_sk=inv_warehouse_sk) +join item on (i_item_sk = cs_item_sk) +join customer_demographics on (cs_bill_cdemo_sk = cd_demo_sk) +join household_demographics on (cs_bill_hdemo_sk = hd_demo_sk) +join date_dim d1 on (cs_sold_date_sk = d1.d_date_sk) +join date_dim d2 on (inv_date_sk = d2.d_date_sk) +join date_dim d3 on (cs_ship_date_sk = d3.d_date_sk) +left outer join promotion on (cs_promo_sk=p_promo_sk) +left outer join catalog_returns on (cr_item_sk = cs_item_sk and cr_order_number = cs_order_number) +where d1.d_week_seq = d2.d_week_seq + and inv_quantity_on_hand < cs_quantity + and (d3.d_date > (d1.d_date + INTERVAL '5' DAY)) + and hd_buy_potential = '501-1000' + and d1.d_year = 2002 + and cd_marital_status = 'W' +group by i_item_desc,w_warehouse_name,d1.d_week_seq +order by total_cnt desc, i_item_desc, w_warehouse_name, d_week_seq +limit 100""" + qt_ds_shape_72 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query73.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query73.groovy index 1300724d1e4b5a..08257b735f1335 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query73.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query73.groovy @@ -1,67 +1,62 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query73") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_73 ''' - explain shape plan - - - - -select c_last_name - ,c_first_name - ,c_salutation - ,c_preferred_cust_flag - ,ss_ticket_number - ,cnt from - (select ss_ticket_number - ,ss_customer_sk - ,count(*) cnt - from store_sales,date_dim,store,household_demographics - where store_sales.ss_sold_date_sk = date_dim.d_date_sk - and store_sales.ss_store_sk = store.s_store_sk - and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk - and date_dim.d_dom between 1 and 2 - and (household_demographics.hd_buy_potential = '501-1000' or - household_demographics.hd_buy_potential = 'Unknown') - and household_demographics.hd_vehicle_count > 0 - and case when household_demographics.hd_vehicle_count > 0 then - household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count else null end > 1 - and date_dim.d_year in (2000,2000+1,2000+2) - and store.s_county in ('Fairfield County','Walker County','Daviess County','Barrow County') - group by ss_ticket_number,ss_customer_sk) dj,customer - where ss_customer_sk = c_customer_sk - and cnt between 1 and 5 - order by cnt desc, c_last_name asc; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query73") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select c_last_name + ,c_first_name + ,c_salutation + ,c_preferred_cust_flag + ,ss_ticket_number + ,cnt from + (select ss_ticket_number + ,ss_customer_sk + ,count(*) cnt + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and date_dim.d_dom between 1 and 2 + and (household_demographics.hd_buy_potential = '501-1000' or + household_demographics.hd_buy_potential = 'Unknown') + and household_demographics.hd_vehicle_count > 0 + and case when household_demographics.hd_vehicle_count > 0 then + household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count else null end > 1 + and date_dim.d_year in (2000,2000+1,2000+2) + and store.s_county in ('Fairfield County','Walker County','Daviess County','Barrow County') + group by ss_ticket_number,ss_customer_sk) dj,customer + where ss_customer_sk = c_customer_sk + and cnt between 1 and 5 + order by cnt desc, c_last_name asc""" + qt_ds_shape_73 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query74.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query74.groovy index f9a79b6c6f2589..898009a5ea1ab1 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query74.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query74.groovy @@ -24,19 +24,13 @@ suite("query74") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_74 ''' - explain shape plan - - - -with year_total as ( + def ds = """with year_total as ( select c_customer_id customer_id ,c_first_name customer_first_name ,c_last_name customer_last_name @@ -93,7 +87,9 @@ with year_total as ( and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end order by 2,1,3 -limit 100; - - ''' +limit 100""" + qt_ds_shape_74 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query75.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query75.groovy index fb1cc8b7fdb22e..bf920a1f94091b 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query75.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query75.groovy @@ -24,20 +24,13 @@ suite("query75") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_75 ''' - explain shape plan - - - - -WITH all_sales AS ( + def ds = """WITH all_sales AS ( SELECT d_year ,i_brand_id ,i_class_id @@ -103,7 +96,9 @@ WITH all_sales AS ( AND prev_yr.d_year=1999-1 AND CAST(curr_yr.sales_cnt AS DECIMAL(17,2))/CAST(prev_yr.sales_cnt AS DECIMAL(17,2))<0.9 ORDER BY sales_cnt_diff,sales_amt_diff - limit 100; - - ''' + limit 100""" + qt_ds_shape_75 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query76.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query76.groovy index 98950cc63f4407..90171df4d58d54 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query76.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query76.groovy @@ -1,63 +1,58 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query76") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_76 ''' - explain shape plan - - - - -select channel, col_name, d_year, d_qoy, i_category, COUNT(*) sales_cnt, SUM(ext_sales_price) sales_amt FROM ( - SELECT 'store' as channel, 'ss_hdemo_sk' col_name, d_year, d_qoy, i_category, ss_ext_sales_price ext_sales_price - FROM store_sales, item, date_dim - WHERE ss_hdemo_sk IS NULL - AND ss_sold_date_sk=d_date_sk - AND ss_item_sk=i_item_sk - UNION ALL - SELECT 'web' as channel, 'ws_bill_addr_sk' col_name, d_year, d_qoy, i_category, ws_ext_sales_price ext_sales_price - FROM web_sales, item, date_dim - WHERE ws_bill_addr_sk IS NULL - AND ws_sold_date_sk=d_date_sk - AND ws_item_sk=i_item_sk - UNION ALL - SELECT 'catalog' as channel, 'cs_warehouse_sk' col_name, d_year, d_qoy, i_category, cs_ext_sales_price ext_sales_price - FROM catalog_sales, item, date_dim - WHERE cs_warehouse_sk IS NULL - AND cs_sold_date_sk=d_date_sk - AND cs_item_sk=i_item_sk) foo -GROUP BY channel, col_name, d_year, d_qoy, i_category -ORDER BY channel, col_name, d_year, d_qoy, i_category -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query76") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select channel, col_name, d_year, d_qoy, i_category, COUNT(*) sales_cnt, SUM(ext_sales_price) sales_amt FROM ( + SELECT 'store' as channel, 'ss_hdemo_sk' col_name, d_year, d_qoy, i_category, ss_ext_sales_price ext_sales_price + FROM store_sales, item, date_dim + WHERE ss_hdemo_sk IS NULL + AND ss_sold_date_sk=d_date_sk + AND ss_item_sk=i_item_sk + UNION ALL + SELECT 'web' as channel, 'ws_bill_addr_sk' col_name, d_year, d_qoy, i_category, ws_ext_sales_price ext_sales_price + FROM web_sales, item, date_dim + WHERE ws_bill_addr_sk IS NULL + AND ws_sold_date_sk=d_date_sk + AND ws_item_sk=i_item_sk + UNION ALL + SELECT 'catalog' as channel, 'cs_warehouse_sk' col_name, d_year, d_qoy, i_category, cs_ext_sales_price ext_sales_price + FROM catalog_sales, item, date_dim + WHERE cs_warehouse_sk IS NULL + AND cs_sold_date_sk=d_date_sk + AND cs_item_sk=i_item_sk) foo +GROUP BY channel, col_name, d_year, d_qoy, i_category +ORDER BY channel, col_name, d_year, d_qoy, i_category +limit 100""" + qt_ds_shape_76 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query77.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query77.groovy index 0e289e3225e5d8..c0761a405b5f6e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query77.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query77.groovy @@ -24,20 +24,13 @@ suite("query77") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_77 ''' - explain shape plan - - - - -with ss as + def ds = """with ss as (select s_store_sk, sum(ss_ext_sales_price) as sales, sum(ss_net_profit) as profit @@ -141,7 +134,9 @@ with ss as group by rollup (channel, id) order by channel ,id - limit 100; - - ''' + limit 100""" + qt_ds_shape_77 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query78.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query78.groovy index 5bd6834367f8a7..dfef0ac34ded3d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query78.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query78.groovy @@ -24,20 +24,13 @@ suite("query78") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_78 ''' - explain shape plan - - - - -with ws as + def ds = """with ws as (select d_year AS ws_sold_year, ws_item_sk, ws_bill_customer_sk ws_customer_sk, sum(ws_quantity) ws_qty, @@ -91,7 +84,9 @@ order by other_chan_wholesale_cost, other_chan_sales_price, ratio -limit 100; - - ''' +limit 100""" + qt_ds_shape_78 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query79.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query79.groovy index 9b6a5b669b66f1..9a0789f06ed931 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query79.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query79.groovy @@ -1,62 +1,57 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query79") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_79 ''' - explain shape plan - - - - -select - c_last_name,c_first_name,substr(s_city,1,30),ss_ticket_number,amt,profit - from - (select ss_ticket_number - ,ss_customer_sk - ,store.s_city - ,sum(ss_coupon_amt) amt - ,sum(ss_net_profit) profit - from store_sales,date_dim,store,household_demographics - where store_sales.ss_sold_date_sk = date_dim.d_date_sk - and store_sales.ss_store_sk = store.s_store_sk - and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk - and (household_demographics.hd_dep_count = 5 or household_demographics.hd_vehicle_count > 4) - and date_dim.d_dow = 1 - and date_dim.d_year in (1998,1998+1,1998+2) - and store.s_number_employees between 200 and 295 - group by ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city) ms,customer - where ss_customer_sk = c_customer_sk - order by c_last_name,c_first_name,substr(s_city,1,30), profit -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query79") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select + c_last_name,c_first_name,substr(s_city,1,30),ss_ticket_number,amt,profit + from + (select ss_ticket_number + ,ss_customer_sk + ,store.s_city + ,sum(ss_coupon_amt) amt + ,sum(ss_net_profit) profit + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and (household_demographics.hd_dep_count = 5 or household_demographics.hd_vehicle_count > 4) + and date_dim.d_dow = 1 + and date_dim.d_year in (1998,1998+1,1998+2) + and store.s_number_employees between 200 and 295 + group by ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city) ms,customer + where ss_customer_sk = c_customer_sk + order by c_last_name,c_first_name,substr(s_city,1,30), profit +limit 100""" + qt_ds_shape_79 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query8.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query8.groovy index 78e8c39f6c4382..c73caec01ca337 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query8.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query8.groovy @@ -24,20 +24,13 @@ suite("query8") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_8 ''' - explain shape plan - - - - -select s_store_name + def ds = """select s_store_name ,sum(ss_net_profit) from store_sales ,date_dim @@ -141,7 +134,9 @@ select s_store_name and (substr(s_zip,1,2) = substr(V1.ca_zip,1,2)) group by s_store_name order by s_store_name - limit 100; - - ''' + limit 100""" + qt_ds_shape_8 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query80.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query80.groovy index 35e875eac577a8..519199d4cc4c84 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query80.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query80.groovy @@ -24,20 +24,13 @@ suite("query80") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_80 ''' - explain shape plan - - - - -with ssr as + def ds = """with ssr as (select s_store_id as store_id, sum(ss_ext_sales_price) as sales, sum(coalesce(sr_return_amt, 0)) as returns, @@ -129,7 +122,9 @@ group by web_site_id) group by rollup (channel, id) order by channel ,id - limit 100; - - ''' + limit 100""" + qt_ds_shape_80 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query81.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query81.groovy index 04d7abdbc8b04e..9e10f6b87cf919 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query81.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query81.groovy @@ -1,70 +1,65 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query81") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_81 ''' - explain shape plan - - - - -with customer_total_return as - (select cr_returning_customer_sk as ctr_customer_sk - ,ca_state as ctr_state, - sum(cr_return_amt_inc_tax) as ctr_total_return - from catalog_returns - ,date_dim - ,customer_address - where cr_returned_date_sk = d_date_sk - and d_year =2002 - and cr_returning_addr_sk = ca_address_sk - group by cr_returning_customer_sk - ,ca_state ) - select c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name - ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset - ,ca_location_type,ctr_total_return - from customer_total_return ctr1 - ,customer_address - ,customer - where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 - from customer_total_return ctr2 - where ctr1.ctr_state = ctr2.ctr_state) - and ca_address_sk = c_current_addr_sk - and ca_state = 'CA' - and ctr1.ctr_customer_sk = c_customer_sk - order by c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name - ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset - ,ca_location_type,ctr_total_return - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query81") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """with customer_total_return as + (select cr_returning_customer_sk as ctr_customer_sk + ,ca_state as ctr_state, + sum(cr_return_amt_inc_tax) as ctr_total_return + from catalog_returns + ,date_dim + ,customer_address + where cr_returned_date_sk = d_date_sk + and d_year =2002 + and cr_returning_addr_sk = ca_address_sk + group by cr_returning_customer_sk + ,ca_state ) + select c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name + ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset + ,ca_location_type,ctr_total_return + from customer_total_return ctr1 + ,customer_address + ,customer + where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 + from customer_total_return ctr2 + where ctr1.ctr_state = ctr2.ctr_state) + and ca_address_sk = c_current_addr_sk + and ca_state = 'CA' + and ctr1.ctr_customer_sk = c_customer_sk + order by c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name + ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset + ,ca_location_type,ctr_total_return + limit 100""" + qt_ds_shape_81 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query82.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query82.groovy index 17efc3c9edfb5d..959078416083b3 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query82.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query82.groovy @@ -1,56 +1,51 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query82") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_82 ''' - explain shape plan - - - - -select i_item_id - ,i_item_desc - ,i_current_price - from item, inventory, date_dim, store_sales - where i_current_price between 17 and 17+30 - and inv_item_sk = i_item_sk - and d_date_sk=inv_date_sk - and d_date between cast('1999-07-09' as date) and (cast('1999-07-09' as date) + interval 60 day) - and i_manufact_id in (639,169,138,339) - and inv_quantity_on_hand between 100 and 500 - and ss_item_sk = i_item_sk - group by i_item_id,i_item_desc,i_current_price - order by i_item_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query82") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select i_item_id + ,i_item_desc + ,i_current_price + from item, inventory, date_dim, store_sales + where i_current_price between 17 and 17+30 + and inv_item_sk = i_item_sk + and d_date_sk=inv_date_sk + and d_date between cast('1999-07-09' as date) and (cast('1999-07-09' as date) + interval 60 day) + and i_manufact_id in (639,169,138,339) + and inv_quantity_on_hand between 100 and 500 + and ss_item_sk = i_item_sk + group by i_item_id,i_item_desc,i_current_price + order by i_item_id + limit 100""" + qt_ds_shape_82 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query83.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query83.groovy index 76e7e433d8d401..9b380969dddc44 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query83.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query83.groovy @@ -24,20 +24,13 @@ suite("query83") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_83 ''' - explain shape plan - - - - -with sr_items as + def ds = """with sr_items as (select i_item_id item_id, sum(sr_return_quantity) sr_item_qty from store_returns, @@ -100,7 +93,9 @@ with sr_items as and sr_items.item_id=wr_items.item_id order by sr_items.item_id ,sr_item_qty - limit 100; - - ''' + limit 100""" + qt_ds_shape_83 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query84.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query84.groovy index 53c5c6cc77cb61..9bf823da7010f1 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query84.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query84.groovy @@ -1,60 +1,55 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query84") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_84 ''' - explain shape plan - - - - -select c_customer_id as customer_id - , concat(concat(coalesce(c_last_name,''), ','), coalesce(c_first_name,'')) as customername - from customer - ,customer_address - ,customer_demographics - ,household_demographics - ,income_band - ,store_returns - where ca_city = 'Oakwood' - and c_current_addr_sk = ca_address_sk - and ib_lower_bound >= 5806 - and ib_upper_bound <= 5806 + 50000 - and ib_income_band_sk = hd_income_band_sk - and cd_demo_sk = c_current_cdemo_sk - and hd_demo_sk = c_current_hdemo_sk - and sr_cdemo_sk = cd_demo_sk - order by c_customer_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query84") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select c_customer_id as customer_id + , concat(concat(coalesce(c_last_name,''), ','), coalesce(c_first_name,'')) as customername + from customer + ,customer_address + ,customer_demographics + ,household_demographics + ,income_band + ,store_returns + where ca_city = 'Oakwood' + and c_current_addr_sk = ca_address_sk + and ib_lower_bound >= 5806 + and ib_upper_bound <= 5806 + 50000 + and ib_income_band_sk = hd_income_band_sk + and cd_demo_sk = c_current_cdemo_sk + and hd_demo_sk = c_current_hdemo_sk + and sr_cdemo_sk = cd_demo_sk + order by c_customer_id + limit 100""" + qt_ds_shape_84 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query85.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query85.groovy index 58d908bd9ba090..5099c00480da97 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query85.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query85.groovy @@ -24,20 +24,13 @@ suite("query85") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_85 ''' - explain shape plan - - - - -select substr(r_reason_desc,1,20) + def ds = """select substr(r_reason_desc,1,20) ,avg(ws_quantity) ,avg(wr_refunded_cash) ,avg(wr_fee) @@ -117,7 +110,9 @@ order by substr(r_reason_desc,1,20) ,avg(ws_quantity) ,avg(wr_refunded_cash) ,avg(wr_fee) -limit 100; - - ''' +limit 100""" + qt_ds_shape_85 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query86.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query86.groovy index 48e3db89d2d808..89399913b58363 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query86.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query86.groovy @@ -1,65 +1,60 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query86") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_86 ''' - explain shape plan - - - - -select - sum(ws_net_paid) as total_sum - ,i_category - ,i_class - ,grouping(i_category)+grouping(i_class) as lochierarchy - ,rank() over ( - partition by grouping(i_category)+grouping(i_class), - case when grouping(i_class) = 0 then i_category end - order by sum(ws_net_paid) desc) as rank_within_parent - from - web_sales - ,date_dim d1 - ,item - where - d1.d_month_seq between 1224 and 1224+11 - and d1.d_date_sk = ws_sold_date_sk - and i_item_sk = ws_item_sk - group by rollup(i_category,i_class) - order by - lochierarchy desc, - case when lochierarchy = 0 then i_category end, - rank_within_parent - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query86") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select + sum(ws_net_paid) as total_sum + ,i_category + ,i_class + ,grouping(i_category)+grouping(i_class) as lochierarchy + ,rank() over ( + partition by grouping(i_category)+grouping(i_class), + case when grouping(i_class) = 0 then i_category end + order by sum(ws_net_paid) desc) as rank_within_parent + from + web_sales + ,date_dim d1 + ,item + where + d1.d_month_seq between 1224 and 1224+11 + and d1.d_date_sk = ws_sold_date_sk + and i_item_sk = ws_item_sk + group by rollup(i_category,i_class) + order by + lochierarchy desc, + case when lochierarchy = 0 then i_category end, + rank_within_parent + limit 100""" + qt_ds_shape_86 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query87.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query87.groovy index ca794d2bb739ce..d0c1756f245a70 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query87.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query87.groovy @@ -1,62 +1,57 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query87") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_87 ''' - explain shape plan - - - - -select count(*) -from ((select distinct c_last_name, c_first_name, d_date - from store_sales, date_dim, customer - where store_sales.ss_sold_date_sk = date_dim.d_date_sk - and store_sales.ss_customer_sk = customer.c_customer_sk - and d_month_seq between 1184 and 1184+11) - except - (select distinct c_last_name, c_first_name, d_date - from catalog_sales, date_dim, customer - where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk - and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk - and d_month_seq between 1184 and 1184+11) - except - (select distinct c_last_name, c_first_name, d_date - from web_sales, date_dim, customer - where web_sales.ws_sold_date_sk = date_dim.d_date_sk - and web_sales.ws_bill_customer_sk = customer.c_customer_sk - and d_month_seq between 1184 and 1184+11) -) cool_cust -; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query87") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select count(*) +from ((select distinct c_last_name, c_first_name, d_date + from store_sales, date_dim, customer + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_customer_sk = customer.c_customer_sk + and d_month_seq between 1184 and 1184+11) + except + (select distinct c_last_name, c_first_name, d_date + from catalog_sales, date_dim, customer + where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk + and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1184 and 1184+11) + except + (select distinct c_last_name, c_first_name, d_date + from web_sales, date_dim, customer + where web_sales.ws_sold_date_sk = date_dim.d_date_sk + and web_sales.ws_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1184 and 1184+11) +) cool_cust +""" + qt_ds_shape_87 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query88.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query88.groovy index a61e82ef512f86..5d8e00cecb702e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query88.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query88.groovy @@ -24,20 +24,13 @@ suite("query88") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_88 ''' - explain shape plan - - - - -select * + def ds = """select * from (select count(*) h8_30_to_9 from store_sales, household_demographics , time_dim, store @@ -127,7 +120,9 @@ from (household_demographics.hd_dep_count = 4 and household_demographics.hd_vehicle_count<=4+2) or (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) and store.s_store_name = 'ese') s8 -; - - ''' +""" + qt_ds_shape_88 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query89.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query89.groovy index fdeacce280b600..f916fb7c0f9a93 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query89.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query89.groovy @@ -1,67 +1,62 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query89") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_89 ''' - explain shape plan - - - - -select * -from( -select i_category, i_class, i_brand, - s_store_name, s_company_name, - d_moy, - sum(ss_sales_price) sum_sales, - avg(sum(ss_sales_price)) over - (partition by i_category, i_brand, s_store_name, s_company_name) - avg_monthly_sales -from item, store_sales, date_dim, store -where ss_item_sk = i_item_sk and - ss_sold_date_sk = d_date_sk and - ss_store_sk = s_store_sk and - d_year in (1999) and - ((i_category in ('Jewelry','Shoes','Electronics') and - i_class in ('semi-precious','athletic','portable') - ) - or (i_category in ('Men','Music','Women') and - i_class in ('accessories','rock','maternity') - )) -group by i_category, i_class, i_brand, - s_store_name, s_company_name, d_moy) tmp1 -where case when (avg_monthly_sales <> 0) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null end > 0.1 -order by sum_sales - avg_monthly_sales, s_store_name -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query89") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select * +from( +select i_category, i_class, i_brand, + s_store_name, s_company_name, + d_moy, + sum(ss_sales_price) sum_sales, + avg(sum(ss_sales_price)) over + (partition by i_category, i_brand, s_store_name, s_company_name) + avg_monthly_sales +from item, store_sales, date_dim, store +where ss_item_sk = i_item_sk and + ss_sold_date_sk = d_date_sk and + ss_store_sk = s_store_sk and + d_year in (1999) and + ((i_category in ('Jewelry','Shoes','Electronics') and + i_class in ('semi-precious','athletic','portable') + ) + or (i_category in ('Men','Music','Women') and + i_class in ('accessories','rock','maternity') + )) +group by i_category, i_class, i_brand, + s_store_name, s_company_name, d_moy) tmp1 +where case when (avg_monthly_sales <> 0) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null end > 0.1 +order by sum_sales - avg_monthly_sales, s_store_name +limit 100""" + qt_ds_shape_89 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query9.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query9.groovy index cdbad38e98fe1c..eac7285b78b68d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query9.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query9.groovy @@ -24,20 +24,13 @@ suite("query9") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_9 ''' - explain shape plan - - - - -select case when (select count(*) + def ds = """select case when (select count(*) from store_sales where ss_quantity between 1 and 20) > 2972190 then (select avg(ss_ext_sales_price) @@ -84,7 +77,9 @@ select case when (select count(*) where ss_quantity between 81 and 100) end bucket5 from reason where r_reason_sk = 1 -; - - ''' +""" + qt_ds_shape_9 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query90.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query90.groovy index 3dfda5d8d0d771..2a02253b20d84d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query90.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query90.groovy @@ -1,61 +1,56 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query90") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_90 ''' - explain shape plan - - - - -select cast(amc as decimal(15,4))/cast(pmc as decimal(15,4)) am_pm_ratio - from ( select count(*) amc - from web_sales, household_demographics , time_dim, web_page - where ws_sold_time_sk = time_dim.t_time_sk - and ws_ship_hdemo_sk = household_demographics.hd_demo_sk - and ws_web_page_sk = web_page.wp_web_page_sk - and time_dim.t_hour between 10 and 10+1 - and household_demographics.hd_dep_count = 2 - and web_page.wp_char_count between 5000 and 5200) at, - ( select count(*) pmc - from web_sales, household_demographics , time_dim, web_page - where ws_sold_time_sk = time_dim.t_time_sk - and ws_ship_hdemo_sk = household_demographics.hd_demo_sk - and ws_web_page_sk = web_page.wp_web_page_sk - and time_dim.t_hour between 16 and 16+1 - and household_demographics.hd_dep_count = 2 - and web_page.wp_char_count between 5000 and 5200) pt - order by am_pm_ratio - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query90") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select cast(amc as decimal(15,4))/cast(pmc as decimal(15,4)) am_pm_ratio + from ( select count(*) amc + from web_sales, household_demographics , time_dim, web_page + where ws_sold_time_sk = time_dim.t_time_sk + and ws_ship_hdemo_sk = household_demographics.hd_demo_sk + and ws_web_page_sk = web_page.wp_web_page_sk + and time_dim.t_hour between 10 and 10+1 + and household_demographics.hd_dep_count = 2 + and web_page.wp_char_count between 5000 and 5200) at, + ( select count(*) pmc + from web_sales, household_demographics , time_dim, web_page + where ws_sold_time_sk = time_dim.t_time_sk + and ws_ship_hdemo_sk = household_demographics.hd_demo_sk + and ws_web_page_sk = web_page.wp_web_page_sk + and time_dim.t_hour between 16 and 16+1 + and household_demographics.hd_dep_count = 2 + and web_page.wp_char_count between 5000 and 5200) pt + order by am_pm_ratio + limit 100""" + qt_ds_shape_90 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query91.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query91.groovy index d8a32b3722b827..9c2f49e4c34581 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query91.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query91.groovy @@ -1,70 +1,65 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query91") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_91 ''' - explain shape plan - - - - -select - cc_call_center_id Call_Center, - cc_name Call_Center_Name, - cc_manager Manager, - sum(cr_net_loss) Returns_Loss -from - call_center, - catalog_returns, - date_dim, - customer, - customer_address, - customer_demographics, - household_demographics -where - cr_call_center_sk = cc_call_center_sk -and cr_returned_date_sk = d_date_sk -and cr_returning_customer_sk= c_customer_sk -and cd_demo_sk = c_current_cdemo_sk -and hd_demo_sk = c_current_hdemo_sk -and ca_address_sk = c_current_addr_sk -and d_year = 2001 -and d_moy = 11 -and ( (cd_marital_status = 'M' and cd_education_status = 'Unknown') - or(cd_marital_status = 'W' and cd_education_status = 'Advanced Degree')) -and hd_buy_potential like '1001-5000%' -and ca_gmt_offset = -6 -group by cc_call_center_id,cc_name,cc_manager,cd_marital_status,cd_education_status -order by sum(cr_net_loss) desc; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query91") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select + cc_call_center_id Call_Center, + cc_name Call_Center_Name, + cc_manager Manager, + sum(cr_net_loss) Returns_Loss +from + call_center, + catalog_returns, + date_dim, + customer, + customer_address, + customer_demographics, + household_demographics +where + cr_call_center_sk = cc_call_center_sk +and cr_returned_date_sk = d_date_sk +and cr_returning_customer_sk= c_customer_sk +and cd_demo_sk = c_current_cdemo_sk +and hd_demo_sk = c_current_hdemo_sk +and ca_address_sk = c_current_addr_sk +and d_year = 2001 +and d_moy = 11 +and ( (cd_marital_status = 'M' and cd_education_status = 'Unknown') + or(cd_marital_status = 'W' and cd_education_status = 'Advanced Degree')) +and hd_buy_potential like '1001-5000%' +and ca_gmt_offset = -6 +group by cc_call_center_id,cc_name,cc_manager,cd_marital_status,cd_education_status +order by sum(cr_net_loss) desc""" + qt_ds_shape_91 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query92.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query92.groovy index 090f94474e7956..95a616da7b7dd5 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query92.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query92.groovy @@ -1,69 +1,64 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query92") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_92 ''' - explain shape plan - - - - -select - sum(ws_ext_discount_amt) as "Excess Discount Amount" -from - web_sales - ,item - ,date_dim -where -i_manufact_id = 320 -and i_item_sk = ws_item_sk -and d_date between '2002-02-26' and - (cast('2002-02-26' as date) + interval 90 day) -and d_date_sk = ws_sold_date_sk -and ws_ext_discount_amt - > ( - SELECT - 1.3 * avg(ws_ext_discount_amt) - FROM - web_sales - ,date_dim - WHERE - ws_item_sk = i_item_sk - and d_date between '2002-02-26' and - (cast('2002-02-26' as date) + interval 90 day) - and d_date_sk = ws_sold_date_sk - ) -order by sum(ws_ext_discount_amt) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query92") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select + sum(ws_ext_discount_amt) as "Excess Discount Amount" +from + web_sales + ,item + ,date_dim +where +i_manufact_id = 320 +and i_item_sk = ws_item_sk +and d_date between '2002-02-26' and + (cast('2002-02-26' as date) + interval 90 day) +and d_date_sk = ws_sold_date_sk +and ws_ext_discount_amt + > ( + SELECT + 1.3 * avg(ws_ext_discount_amt) + FROM + web_sales + ,date_dim + WHERE + ws_item_sk = i_item_sk + and d_date between '2002-02-26' and + (cast('2002-02-26' as date) + interval 90 day) + and d_date_sk = ws_sold_date_sk + ) +order by sum(ws_ext_discount_amt) +limit 100""" + qt_ds_shape_92 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query93.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query93.groovy index f6e1e666fa0ef1..93e041d3d45155 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query93.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query93.groovy @@ -1,57 +1,52 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query93") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_93 ''' - explain shape plan - - - - -select ss_customer_sk - ,sum(act_sales) sumsales - from (select ss_item_sk - ,ss_ticket_number - ,ss_customer_sk - ,case when sr_return_quantity is not null then (ss_quantity-sr_return_quantity)*ss_sales_price - else (ss_quantity*ss_sales_price) end act_sales - from store_sales left outer join store_returns on (sr_item_sk = ss_item_sk - and sr_ticket_number = ss_ticket_number) - ,reason - where sr_reason_sk = r_reason_sk - and r_reason_desc = 'duplicate purchase') t - group by ss_customer_sk - order by sumsales, ss_customer_sk -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query93") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select ss_customer_sk + ,sum(act_sales) sumsales + from (select ss_item_sk + ,ss_ticket_number + ,ss_customer_sk + ,case when sr_return_quantity is not null then (ss_quantity-sr_return_quantity)*ss_sales_price + else (ss_quantity*ss_sales_price) end act_sales + from store_sales left outer join store_returns on (sr_item_sk = ss_item_sk + and sr_ticket_number = ss_ticket_number) + ,reason + where sr_reason_sk = r_reason_sk + and r_reason_desc = 'duplicate purchase') t + group by ss_customer_sk + order by sumsales, ss_customer_sk +limit 100""" + qt_ds_shape_93 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query94.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query94.groovy index 4ea58643a63662..5a402b39d249bc 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query94.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query94.groovy @@ -1,68 +1,63 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query94") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_94 ''' - explain shape plan - - - - -select - count(distinct ws_order_number) as "order count" - ,sum(ws_ext_ship_cost) as "total shipping cost" - ,sum(ws_net_profit) as "total net profit" -from - web_sales ws1 - ,date_dim - ,customer_address - ,web_site -where - d_date between '2000-2-01' and - (cast('2000-2-01' as date) + interval 60 day) -and ws1.ws_ship_date_sk = d_date_sk -and ws1.ws_ship_addr_sk = ca_address_sk -and ca_state = 'OK' -and ws1.ws_web_site_sk = web_site_sk -and web_company_name = 'pri' -and exists (select * - from web_sales ws2 - where ws1.ws_order_number = ws2.ws_order_number - and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) -and not exists(select * - from web_returns wr1 - where ws1.ws_order_number = wr1.wr_order_number) -order by count(distinct ws_order_number) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query94") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select + count(distinct ws_order_number) as "order count" + ,sum(ws_ext_ship_cost) as "total shipping cost" + ,sum(ws_net_profit) as "total net profit" +from + web_sales ws1 + ,date_dim + ,customer_address + ,web_site +where + d_date between '2000-2-01' and + (cast('2000-2-01' as date) + interval 60 day) +and ws1.ws_ship_date_sk = d_date_sk +and ws1.ws_ship_addr_sk = ca_address_sk +and ca_state = 'OK' +and ws1.ws_web_site_sk = web_site_sk +and web_company_name = 'pri' +and exists (select * + from web_sales ws2 + where ws1.ws_order_number = ws2.ws_order_number + and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) +and not exists(select * + from web_returns wr1 + where ws1.ws_order_number = wr1.wr_order_number) +order by count(distinct ws_order_number) +limit 100""" + qt_ds_shape_94 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query95.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query95.groovy index 3064909fcf0265..39ec3e4e27d315 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query95.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query95.groovy @@ -1,69 +1,66 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query95") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_95 ''' - explain shape plan - - -with ws_wh as -(select ws1.ws_order_number,ws1.ws_warehouse_sk wh1,ws2.ws_warehouse_sk wh2 - from web_sales ws1,web_sales ws2 - where ws1.ws_order_number = ws2.ws_order_number - and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) - select - count(distinct ws_order_number) as "order count" - ,sum(ws_ext_ship_cost) as "total shipping cost" - ,sum(ws_net_profit) as "total net profit" -from - web_sales ws1 - ,date_dim - ,customer_address - ,web_site -where - d_date between '1999-2-01' and - (cast('1999-2-01' as date) + interval 60 day) -and ws1.ws_ship_date_sk = d_date_sk -and ws1.ws_ship_addr_sk = ca_address_sk -and ca_state = 'NC' -and ws1.ws_web_site_sk = web_site_sk -and web_company_name = 'pri' -and ws1.ws_order_number in (select ws_order_number - from ws_wh) -and ws1.ws_order_number in (select wr_order_number - from web_returns,ws_wh - where wr_order_number = ws_wh.ws_order_number) -order by count(distinct ws_order_number) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query95") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """with ws_wh as +(select ws1.ws_order_number,ws1.ws_warehouse_sk wh1,ws2.ws_warehouse_sk wh2 + from web_sales ws1,web_sales ws2 + where ws1.ws_order_number = ws2.ws_order_number + and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) + select + count(distinct ws_order_number) as "order count" + ,sum(ws_ext_ship_cost) as "total shipping cost" + ,sum(ws_net_profit) as "total net profit" +from + web_sales ws1 + ,date_dim + ,customer_address + ,web_site +where + d_date between '1999-2-01' and + (cast('1999-2-01' as date) + interval 60 day) +and ws1.ws_ship_date_sk = d_date_sk +and ws1.ws_ship_addr_sk = ca_address_sk +and ca_state = 'NC' +and ws1.ws_web_site_sk = web_site_sk +and web_company_name = 'pri' +and ws1.ws_order_number in (select ws_order_number + from ws_wh) +and ws1.ws_order_number in (select wr_order_number + from web_returns,ws_wh + where wr_order_number = ws_wh.ws_order_number) +order by count(distinct ws_order_number) +limit 100""" + qt_ds_shape_95 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query96.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query96.groovy index 529b014b835ca4..5443f9e5328db0 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query96.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query96.groovy @@ -1,55 +1,50 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query96") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_96 ''' - explain shape plan - - - - -select count(*) -from store_sales - ,household_demographics - ,time_dim, store -where ss_sold_time_sk = time_dim.t_time_sk - and ss_hdemo_sk = household_demographics.hd_demo_sk - and ss_store_sk = s_store_sk - and time_dim.t_hour = 8 - and time_dim.t_minute >= 30 - and household_demographics.hd_dep_count = 3 - and store.s_store_name = 'ese' -order by count(*) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query96") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """select count(*) +from store_sales + ,household_demographics + ,time_dim, store +where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 8 + and time_dim.t_minute >= 30 + and household_demographics.hd_dep_count = 3 + and store.s_store_name = 'ese' +order by count(*) +limit 100""" + qt_ds_shape_96 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query97.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query97.groovy index ab7184c985c39f..d100e29d6c661b 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query97.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query97.groovy @@ -1,64 +1,59 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query97") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_97 ''' - explain shape plan - - - - -with ssci as ( -select ss_customer_sk customer_sk - ,ss_item_sk item_sk -from store_sales,date_dim -where ss_sold_date_sk = d_date_sk - and d_month_seq between 1214 and 1214 + 11 -group by ss_customer_sk - ,ss_item_sk), -csci as( - select cs_bill_customer_sk customer_sk - ,cs_item_sk item_sk -from catalog_sales,date_dim -where cs_sold_date_sk = d_date_sk - and d_month_seq between 1214 and 1214 + 11 -group by cs_bill_customer_sk - ,cs_item_sk) - select sum(case when ssci.customer_sk is not null and csci.customer_sk is null then 1 else 0 end) store_only - ,sum(case when ssci.customer_sk is null and csci.customer_sk is not null then 1 else 0 end) catalog_only - ,sum(case when ssci.customer_sk is not null and csci.customer_sk is not null then 1 else 0 end) store_and_catalog -from ssci full outer join csci on (ssci.customer_sk=csci.customer_sk - and ssci.item_sk = csci.item_sk) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query97") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=true' + + def ds = """with ssci as ( +select ss_customer_sk customer_sk + ,ss_item_sk item_sk +from store_sales,date_dim +where ss_sold_date_sk = d_date_sk + and d_month_seq between 1214 and 1214 + 11 +group by ss_customer_sk + ,ss_item_sk), +csci as( + select cs_bill_customer_sk customer_sk + ,cs_item_sk item_sk +from catalog_sales,date_dim +where cs_sold_date_sk = d_date_sk + and d_month_seq between 1214 and 1214 + 11 +group by cs_bill_customer_sk + ,cs_item_sk) + select sum(case when ssci.customer_sk is not null and csci.customer_sk is null then 1 else 0 end) store_only + ,sum(case when ssci.customer_sk is null and csci.customer_sk is not null then 1 else 0 end) catalog_only + ,sum(case when ssci.customer_sk is not null and csci.customer_sk is not null then 1 else 0 end) store_and_catalog +from ssci full outer join csci on (ssci.customer_sk=csci.customer_sk + and ssci.item_sk = csci.item_sk) +limit 100""" + qt_ds_shape_97 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query98.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query98.groovy index 6acc85391dda28..5dadeaad68629d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query98.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query98.groovy @@ -24,20 +24,13 @@ suite("query98") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_98 ''' - explain shape plan - - - - -select i_item_id + def ds = """select i_item_id ,i_item_desc ,i_category ,i_class @@ -66,7 +59,9 @@ order by ,i_class ,i_item_id ,i_item_desc - ,revenueratio; - - ''' + ,revenueratio""" + qt_ds_shape_98 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query99.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query99.groovy index ea52d2e84ebc09..2bb72474c570ae 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query99.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf_prune/query99.groovy @@ -24,20 +24,13 @@ suite("query99") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=true' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' + sql 'set enable_runtime_filter_prune=true' - qt_ds_shape_99 ''' - explain shape plan - - - - -select + def ds = """select substr(w_warehouse_name,1,20) ,sm_type ,cc_name @@ -68,7 +61,9 @@ group by order by substr(w_warehouse_name,1,20) ,sm_type ,cc_name -limit 100; - - ''' +limit 100""" + qt_ds_shape_99 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query1.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query1.groovy index b7f1bd82b9fc1f..fc02bd535df76c 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query1.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query1.groovy @@ -1,59 +1,58 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query1") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - qt_ds_shape_1 ''' - explain shape plan -with customer_total_return as -(select sr_customer_sk as ctr_customer_sk -,sr_store_sk as ctr_store_sk -,sum(SR_FEE) as ctr_total_return -from store_returns -,date_dim -where sr_returned_date_sk = d_date_sk -and d_year =2000 -group by sr_customer_sk -,sr_store_sk) - select c_customer_id -from customer_total_return ctr1 -,store -,customer -where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 -from customer_total_return ctr2 -where ctr1.ctr_store_sk = ctr2.ctr_store_sk) -and s_store_sk = ctr1.ctr_store_sk -and s_state = 'SD' -and ctr1.ctr_customer_sk = c_customer_sk -order by c_customer_id -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query1") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """with customer_total_return as +(select sr_customer_sk as ctr_customer_sk +,sr_store_sk as ctr_store_sk +,sum(SR_FEE) as ctr_total_return +from store_returns +,date_dim +where sr_returned_date_sk = d_date_sk +and d_year =2000 +group by sr_customer_sk +,sr_store_sk) + select c_customer_id +from customer_total_return ctr1 +,store +,customer +where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 +from customer_total_return ctr2 +where ctr1.ctr_store_sk = ctr2.ctr_store_sk) +and s_store_sk = ctr1.ctr_store_sk +and s_state = 'SD' +and ctr1.ctr_customer_sk = c_customer_sk +order by c_customer_id +limit 100""" + qt_ds_shape_1 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query10.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query10.groovy index 9a0cfca2f60859..d3bd5b2020f612 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query10.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query10.groovy @@ -24,20 +24,12 @@ suite("query10") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_10 ''' - explain shape plan - - - - -select + sql 'set enable_runtime_filter_prune=false' + def ds = """select cd_gender, cd_marital_status, cd_education_status, @@ -92,7 +84,9 @@ select cd_dep_count, cd_dep_employed_count, cd_dep_college_count -limit 100; - - ''' +limit 100""" + qt_ds_shape_10 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query11.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query11.groovy index fb832a894cec98..975fff70ff958a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query11.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query11.groovy @@ -24,20 +24,12 @@ suite("query11") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_11 ''' - explain shape plan - - - - -with year_total as ( + sql 'set enable_runtime_filter_prune=false' + def ds = """with year_total as ( select c_customer_id customer_id ,c_first_name customer_first_name ,c_last_name customer_last_name @@ -114,7 +106,9 @@ with year_total as ( ,t_s_secyear.customer_first_name ,t_s_secyear.customer_last_name ,t_s_secyear.customer_birth_country -limit 100; - - ''' +limit 100""" + qt_ds_shape_11 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query12.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query12.groovy index d7aa4f3c273cce..aaa01a0a11173d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query12.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query12.groovy @@ -24,20 +24,12 @@ suite("query12") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_12 ''' - explain shape plan - - - - -select i_item_id + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id ,i_item_desc ,i_category ,i_class @@ -67,7 +59,9 @@ order by ,i_item_id ,i_item_desc ,revenueratio -limit 100; - - ''' +limit 100""" + qt_ds_shape_12 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query13.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query13.groovy index 468a827a0646eb..af382c410c92ff 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query13.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query13.groovy @@ -24,18 +24,12 @@ suite("query13") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_13 ''' - explain shape plan - - -select avg(ss_quantity) + sql 'set enable_runtime_filter_prune=false' + def ds = """select avg(ss_quantity) ,avg(ss_ext_sales_price) ,avg(ss_ext_wholesale_cost) ,sum(ss_ext_wholesale_cost) @@ -83,7 +77,9 @@ select avg(ss_quantity) and ca_state in ('NH', 'OH', 'TX') and ss_net_profit between 50 and 250 )) -; - - ''' +""" + qt_ds_shape_13 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query14.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query14.groovy index b6c2e4ee510992..2e8654d0d8c44e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query14.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query14.groovy @@ -24,18 +24,12 @@ suite("query14") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_14 ''' - explain shape plan - - -with cross_items as + sql 'set enable_runtime_filter_prune=false' + def ds = """with cross_items as (select i_item_sk ss_item_sk from item, (select iss.i_brand_id brand_id @@ -135,7 +129,9 @@ with cross_items as ) y group by rollup (channel, i_brand_id,i_class_id,i_category_id) order by channel,i_brand_id,i_class_id,i_category_id - limit 100; - - ''' + limit 100""" + qt_ds_shape_14 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query15.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query15.groovy index 234cf5b40235f5..0a4311b3df2bbc 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query15.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query15.groovy @@ -1,58 +1,53 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query15") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_15 ''' - explain shape plan - - - -select ca_zip - ,sum(cs_sales_price) - from catalog_sales - ,customer - ,customer_address - ,date_dim - where cs_bill_customer_sk = c_customer_sk - and c_current_addr_sk = ca_address_sk - and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', - '85392', '85460', '80348', '81792') - or ca_state in ('CA','WA','GA') - or cs_sales_price > 500) - and cs_sold_date_sk = d_date_sk - and d_qoy = 1 and d_year = 2001 - group by ca_zip - order by ca_zip - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query15") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select ca_zip + ,sum(cs_sales_price) + from catalog_sales + ,customer + ,customer_address + ,date_dim + where cs_bill_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', + '85392', '85460', '80348', '81792') + or ca_state in ('CA','WA','GA') + or cs_sales_price > 500) + and cs_sold_date_sk = d_date_sk + and d_qoy = 1 and d_year = 2001 + group by ca_zip + order by ca_zip + limit 100""" + qt_ds_shape_15 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query16.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query16.groovy index 025d3f7e63109d..f60cc48a3098f9 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query16.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query16.groovy @@ -1,70 +1,64 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query16") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_16 ''' - explain shape plan - - - - -select - count(distinct cs_order_number) as "order count" - ,sum(cs_ext_ship_cost) as "total shipping cost" - ,sum(cs_net_profit) as "total net profit" -from - catalog_sales cs1 - ,date_dim - ,customer_address - ,call_center -where - d_date between '2002-4-01' and - (cast('2002-4-01' as date) + interval 60 day) -and cs1.cs_ship_date_sk = d_date_sk -and cs1.cs_ship_addr_sk = ca_address_sk -and ca_state = 'WV' -and cs1.cs_call_center_sk = cc_call_center_sk -and cc_county in ('Ziebach County','Luce County','Richland County','Daviess County', - 'Barrow County' -) -and exists (select * - from catalog_sales cs2 - where cs1.cs_order_number = cs2.cs_order_number - and cs1.cs_warehouse_sk <> cs2.cs_warehouse_sk) -and not exists(select * - from catalog_returns cr1 - where cs1.cs_order_number = cr1.cr_order_number) -order by count(distinct cs_order_number) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query16") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select + count(distinct cs_order_number) as "order count" + ,sum(cs_ext_ship_cost) as "total shipping cost" + ,sum(cs_net_profit) as "total net profit" +from + catalog_sales cs1 + ,date_dim + ,customer_address + ,call_center +where + d_date between '2002-4-01' and + (cast('2002-4-01' as date) + interval 60 day) +and cs1.cs_ship_date_sk = d_date_sk +and cs1.cs_ship_addr_sk = ca_address_sk +and ca_state = 'WV' +and cs1.cs_call_center_sk = cc_call_center_sk +and cc_county in ('Ziebach County','Luce County','Richland County','Daviess County', + 'Barrow County' +) +and exists (select * + from catalog_sales cs2 + where cs1.cs_order_number = cs2.cs_order_number + and cs1.cs_warehouse_sk <> cs2.cs_warehouse_sk) +and not exists(select * + from catalog_returns cr1 + where cs1.cs_order_number = cr1.cr_order_number) +order by count(distinct cs_order_number) +limit 100""" + qt_ds_shape_16 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query17.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query17.groovy index 448f2e7e2923c5..e465b16d6e8608 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query17.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query17.groovy @@ -24,20 +24,12 @@ suite("query17") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_17 ''' - explain shape plan - - - - -select i_item_id + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id ,i_item_desc ,s_state ,count(ss_quantity) as store_sales_quantitycount @@ -78,7 +70,9 @@ select i_item_id order by i_item_id ,i_item_desc ,s_state -limit 100; - - ''' +limit 100""" + qt_ds_shape_17 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query18.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query18.groovy index 13de8942c10747..75db6127b07cc3 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query18.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query18.groovy @@ -24,20 +24,12 @@ suite("query18") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_18 ''' - explain shape plan - - - - -select i_item_id, + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id, ca_country, ca_state, ca_county, @@ -67,7 +59,9 @@ select i_item_id, ca_state, ca_county, i_item_id - limit 100; - - ''' + limit 100""" + qt_ds_shape_18 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query19.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query19.groovy index 98cdfc2f5fcf66..0a0cb1fa7d6c52 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query19.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query19.groovy @@ -1,64 +1,58 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query19") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_19 ''' - explain shape plan - - - - -select i_brand_id brand_id, i_brand brand, i_manufact_id, i_manufact, - sum(ss_ext_sales_price) ext_price - from date_dim, store_sales, item,customer,customer_address,store - where d_date_sk = ss_sold_date_sk - and ss_item_sk = i_item_sk - and i_manager_id=2 - and d_moy=12 - and d_year=1999 - and ss_customer_sk = c_customer_sk - and c_current_addr_sk = ca_address_sk - and substr(ca_zip,1,5) <> substr(s_zip,1,5) - and ss_store_sk = s_store_sk - group by i_brand - ,i_brand_id - ,i_manufact_id - ,i_manufact - order by ext_price desc - ,i_brand - ,i_brand_id - ,i_manufact_id - ,i_manufact -limit 100 ; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query19") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_brand_id brand_id, i_brand brand, i_manufact_id, i_manufact, + sum(ss_ext_sales_price) ext_price + from date_dim, store_sales, item,customer,customer_address,store + where d_date_sk = ss_sold_date_sk + and ss_item_sk = i_item_sk + and i_manager_id=2 + and d_moy=12 + and d_year=1999 + and ss_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and substr(ca_zip,1,5) <> substr(s_zip,1,5) + and ss_store_sk = s_store_sk + group by i_brand + ,i_brand_id + ,i_manufact_id + ,i_manufact + order by ext_price desc + ,i_brand + ,i_brand_id + ,i_manufact_id + ,i_manufact +limit 100 """ + qt_ds_shape_19 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query2.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query2.groovy index 51f75eb22b393a..06517d39cb8b84 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query2.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query2.groovy @@ -24,21 +24,12 @@ suite("query2") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - - qt_ds_shape_2 ''' - explain shape plan - - - - -with wscs as + sql 'set enable_runtime_filter_prune=false' + def ds = """with wscs as (select sold_date_sk ,sales_price from (select ws_sold_date_sk sold_date_sk @@ -94,7 +85,9 @@ with wscs as where date_dim.d_week_seq = wswscs.d_week_seq and d_year = 1998+1) z where d_week_seq1=d_week_seq2-53 - order by d_week_seq1; - - ''' + order by d_week_seq1""" + qt_ds_shape_2 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query20.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query20.groovy index 2e1d054af8caf4..4ab130634938f4 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query20.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query20.groovy @@ -1,69 +1,63 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query20") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_20 ''' - explain shape plan - - - - -select i_item_id - ,i_item_desc - ,i_category - ,i_class - ,i_current_price - ,sum(cs_ext_sales_price) as itemrevenue - ,sum(cs_ext_sales_price)*100/sum(sum(cs_ext_sales_price)) over - (partition by i_class) as revenueratio - from catalog_sales - ,item - ,date_dim - where cs_item_sk = i_item_sk - and i_category in ('Shoes', 'Books', 'Women') - and cs_sold_date_sk = d_date_sk - and d_date between cast('2002-01-26' as date) - and (cast('2002-01-26' as date) + interval 30 day) - group by i_item_id - ,i_item_desc - ,i_category - ,i_class - ,i_current_price - order by i_category - ,i_class - ,i_item_id - ,i_item_desc - ,revenueratio -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query20") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price + ,sum(cs_ext_sales_price) as itemrevenue + ,sum(cs_ext_sales_price)*100/sum(sum(cs_ext_sales_price)) over + (partition by i_class) as revenueratio + from catalog_sales + ,item + ,date_dim + where cs_item_sk = i_item_sk + and i_category in ('Shoes', 'Books', 'Women') + and cs_sold_date_sk = d_date_sk + and d_date between cast('2002-01-26' as date) + and (cast('2002-01-26' as date) + interval 30 day) + group by i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price + order by i_category + ,i_class + ,i_item_id + ,i_item_desc + ,revenueratio +limit 100""" + qt_ds_shape_20 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query21.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query21.groovy index 1e4b3f3b10396d..f3aae7a91bfaa2 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query21.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query21.groovy @@ -1,69 +1,63 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query21") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_21 ''' - explain shape plan - - - - -select * - from(select w_warehouse_name - ,i_item_id - ,sum(case when (cast(d_date as date) < cast ('2002-02-27' as date)) - then inv_quantity_on_hand - else 0 end) as inv_before - ,sum(case when (cast(d_date as date) >= cast ('2002-02-27' as date)) - then inv_quantity_on_hand - else 0 end) as inv_after - from inventory - ,warehouse - ,item - ,date_dim - where i_current_price between 0.99 and 1.49 - and i_item_sk = inv_item_sk - and inv_warehouse_sk = w_warehouse_sk - and inv_date_sk = d_date_sk - and d_date between (cast ('2002-02-27' as date) - interval 30 day) - and (cast ('2002-02-27' as date) + interval 30 day) - group by w_warehouse_name, i_item_id) x - where (case when inv_before > 0 - then inv_after / inv_before - else null - end) between 2.0/3.0 and 3.0/2.0 - order by w_warehouse_name - ,i_item_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query21") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select * + from(select w_warehouse_name + ,i_item_id + ,sum(case when (cast(d_date as date) < cast ('2002-02-27' as date)) + then inv_quantity_on_hand + else 0 end) as inv_before + ,sum(case when (cast(d_date as date) >= cast ('2002-02-27' as date)) + then inv_quantity_on_hand + else 0 end) as inv_after + from inventory + ,warehouse + ,item + ,date_dim + where i_current_price between 0.99 and 1.49 + and i_item_sk = inv_item_sk + and inv_warehouse_sk = w_warehouse_sk + and inv_date_sk = d_date_sk + and d_date between (cast ('2002-02-27' as date) - interval 30 day) + and (cast ('2002-02-27' as date) + interval 30 day) + group by w_warehouse_name, i_item_id) x + where (case when inv_before > 0 + then inv_after / inv_before + else null + end) between 2.0/3.0 and 3.0/2.0 + order by w_warehouse_name + ,i_item_id + limit 100""" + qt_ds_shape_21 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query22.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query22.groovy index 4dc78abb364dfa..01d5f0bc3cb56a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query22.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query22.groovy @@ -1,59 +1,53 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query22") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_22 ''' - explain shape plan - - - - -select i_product_name - ,i_brand - ,i_class - ,i_category - ,avg(inv_quantity_on_hand) qoh - from inventory - ,date_dim - ,item - where inv_date_sk=d_date_sk - and inv_item_sk=i_item_sk - and d_month_seq between 1188 and 1188 + 11 - group by rollup(i_product_name - ,i_brand - ,i_class - ,i_category) -order by qoh, i_product_name, i_brand, i_class, i_category -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query22") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_product_name + ,i_brand + ,i_class + ,i_category + ,avg(inv_quantity_on_hand) qoh + from inventory + ,date_dim + ,item + where inv_date_sk=d_date_sk + and inv_item_sk=i_item_sk + and d_month_seq between 1188 and 1188 + 11 + group by rollup(i_product_name + ,i_brand + ,i_class + ,i_category) +order by qoh, i_product_name, i_brand, i_class, i_category +limit 100""" + qt_ds_shape_22 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query23.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query23.groovy index b277543e1ae08c..8b50af22e7c989 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query23.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query23.groovy @@ -24,19 +24,12 @@ suite("query23") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_23 ''' - explain shape plan - - - -with frequent_ss_items as + sql 'set enable_runtime_filter_prune=false' + def ds = """with frequent_ss_items as (select substr(i_item_desc,1,30) itemdesc,i_item_sk item_sk,d_date solddate,count(*) cnt from store_sales ,date_dim @@ -84,7 +77,9 @@ from and ws_sold_date_sk = d_date_sk and ws_item_sk in (select item_sk from frequent_ss_items) and ws_bill_customer_sk in (select c_customer_sk from best_ss_customer)) t2 - limit 100; - - ''' + limit 100""" + qt_ds_shape_23 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query24.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query24.groovy index 866592c9afb7b2..727d9797aa0c5f 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query24.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query24.groovy @@ -24,70 +24,65 @@ suite("query24") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_24 ''' - explain shape plan - - - - with ssales as - (select c_last_name - ,c_first_name - ,s_store_name - ,ca_state - ,s_state - ,i_color - ,i_current_price - ,i_manager_id - ,i_units - ,i_size - ,sum(ss_net_profit) netpaid - from store_sales - ,store_returns - ,store - ,item - ,customer - ,customer_address - where ss_ticket_number = sr_ticket_number - and ss_item_sk = sr_item_sk - and ss_customer_sk = c_customer_sk - and ss_item_sk = i_item_sk - and ss_store_sk = s_store_sk - and c_current_addr_sk = ca_address_sk - and c_birth_country <> upper(ca_country) - and s_zip = ca_zip - and s_market_id=8 - group by c_last_name - ,c_first_name - ,s_store_name - ,ca_state - ,s_state - ,i_color - ,i_current_price - ,i_manager_id - ,i_units - ,i_size) - select c_last_name - ,c_first_name - ,s_store_name - ,sum(netpaid) paid - from ssales - where i_color = 'beige' - group by c_last_name - ,c_first_name - ,s_store_name - having sum(netpaid) > (select 0.05*avg(netpaid) - from ssales) - order by c_last_name - ,c_first_name - ,s_store_name - ; - - ''' + sql 'set enable_runtime_filter_prune=false' + def ds = """with ssales as +(select c_last_name + ,c_first_name + ,s_store_name + ,ca_state + ,s_state + ,i_color + ,i_current_price + ,i_manager_id + ,i_units + ,i_size + ,sum(ss_net_profit) netpaid +from store_sales + ,store_returns + ,store + ,item + ,customer + ,customer_address +where ss_ticket_number = sr_ticket_number + and ss_item_sk = sr_item_sk + and ss_customer_sk = c_customer_sk + and ss_item_sk = i_item_sk + and ss_store_sk = s_store_sk + and c_current_addr_sk = ca_address_sk + and c_birth_country <> upper(ca_country) + and s_zip = ca_zip +and s_market_id=8 +group by c_last_name + ,c_first_name + ,s_store_name + ,ca_state + ,s_state + ,i_color + ,i_current_price + ,i_manager_id + ,i_units + ,i_size) +select c_last_name + ,c_first_name + ,s_store_name + ,sum(netpaid) paid +from ssales +where i_color = 'beige' +group by c_last_name + ,c_first_name + ,s_store_name +having sum(netpaid) > (select 0.05*avg(netpaid) + from ssales) +order by c_last_name + ,c_first_name + ,s_store_name +""" + qt_ds_shape_24 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query25.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query25.groovy index 03455050ad74be..fe4eeeccc5e85c 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query25.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query25.groovy @@ -24,19 +24,12 @@ suite("query25") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_25 ''' - explain shape plan - - - -select + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id ,i_item_desc ,s_store_id @@ -80,7 +73,9 @@ select ,i_item_desc ,s_store_id ,s_store_name - limit 100; - - ''' + limit 100""" + qt_ds_shape_25 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query26.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query26.groovy index 0d9740de5aec19..036578f2455793 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query26.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query26.groovy @@ -1,60 +1,54 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query26") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_26 ''' - explain shape plan - - - - -select i_item_id, - avg(cs_quantity) agg1, - avg(cs_list_price) agg2, - avg(cs_coupon_amt) agg3, - avg(cs_sales_price) agg4 - from catalog_sales, customer_demographics, date_dim, item, promotion - where cs_sold_date_sk = d_date_sk and - cs_item_sk = i_item_sk and - cs_bill_cdemo_sk = cd_demo_sk and - cs_promo_sk = p_promo_sk and - cd_gender = 'M' and - cd_marital_status = 'S' and - cd_education_status = 'Unknown' and - (p_channel_email = 'N' or p_channel_event = 'N') and - d_year = 2001 - group by i_item_id - order by i_item_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query26") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id, + avg(cs_quantity) agg1, + avg(cs_list_price) agg2, + avg(cs_coupon_amt) agg3, + avg(cs_sales_price) agg4 + from catalog_sales, customer_demographics, date_dim, item, promotion + where cs_sold_date_sk = d_date_sk and + cs_item_sk = i_item_sk and + cs_bill_cdemo_sk = cd_demo_sk and + cs_promo_sk = p_promo_sk and + cd_gender = 'M' and + cd_marital_status = 'S' and + cd_education_status = 'Unknown' and + (p_channel_email = 'N' or p_channel_event = 'N') and + d_year = 2001 + group by i_item_id + order by i_item_id + limit 100""" + qt_ds_shape_26 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query27.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query27.groovy index e6a81b86c51952..10bed124f60893 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query27.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query27.groovy @@ -1,61 +1,56 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query27") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_27 ''' - explain shape plan - - - -select i_item_id, - s_state, grouping(s_state) g_state, - avg(ss_quantity) agg1, - avg(ss_list_price) agg2, - avg(ss_coupon_amt) agg3, - avg(ss_sales_price) agg4 - from store_sales, customer_demographics, date_dim, store, item - where ss_sold_date_sk = d_date_sk and - ss_item_sk = i_item_sk and - ss_store_sk = s_store_sk and - ss_cdemo_sk = cd_demo_sk and - cd_gender = 'F' and - cd_marital_status = 'D' and - cd_education_status = 'Secondary' and - d_year = 1999 and - s_state in ('MO','AL', 'MI', 'TN', 'LA', 'SC') - group by rollup (i_item_id, s_state) - order by i_item_id - ,s_state - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query27") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id, + s_state, grouping(s_state) g_state, + avg(ss_quantity) agg1, + avg(ss_list_price) agg2, + avg(ss_coupon_amt) agg3, + avg(ss_sales_price) agg4 + from store_sales, customer_demographics, date_dim, store, item + where ss_sold_date_sk = d_date_sk and + ss_item_sk = i_item_sk and + ss_store_sk = s_store_sk and + ss_cdemo_sk = cd_demo_sk and + cd_gender = 'F' and + cd_marital_status = 'D' and + cd_education_status = 'Secondary' and + d_year = 1999 and + s_state in ('MO','AL', 'MI', 'TN', 'LA', 'SC') + group by rollup (i_item_id, s_state) + order by i_item_id + ,s_state + limit 100""" + qt_ds_shape_27 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query28.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query28.groovy index 0c0788b324ab0a..7ac71bad782ebb 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query28.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query28.groovy @@ -24,20 +24,12 @@ suite("query28") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_28 ''' - explain shape plan - - - - -select * + sql 'set enable_runtime_filter_prune=false' + def ds = """select * from (select avg(ss_list_price) B1_LP ,count(ss_list_price) B1_CNT ,count(distinct ss_list_price) B1_CNTD @@ -86,7 +78,9 @@ from (select avg(ss_list_price) B1_LP and (ss_list_price between 89 and 89+10 or ss_coupon_amt between 15257 and 15257+1000 or ss_wholesale_cost between 31 and 31+20)) B6 -limit 100; - - ''' +limit 100""" + qt_ds_shape_28 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query29.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query29.groovy index 4348c38a612070..0bd4c740a7dc5b 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query29.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query29.groovy @@ -24,20 +24,12 @@ suite("query29") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_29 ''' - explain shape plan - - - - -select + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id ,i_item_desc ,s_store_id @@ -80,7 +72,9 @@ select ,i_item_desc ,s_store_id ,s_store_name - limit 100; - - ''' + limit 100""" + qt_ds_shape_29 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query3.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query3.groovy index b75340d453484c..1542b49a52a729 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query3.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query3.groovy @@ -1,61 +1,54 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query3") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - - qt_ds_shape_3 ''' - explain shape plan - - - - -select dt.d_year - ,item.i_brand_id brand_id - ,item.i_brand brand - ,sum(ss_sales_price) sum_agg - from date_dim dt - ,store_sales - ,item - where dt.d_date_sk = store_sales.ss_sold_date_sk - and store_sales.ss_item_sk = item.i_item_sk - and item.i_manufact_id = 816 - and dt.d_moy=11 - group by dt.d_year - ,item.i_brand - ,item.i_brand_id - order by dt.d_year - ,sum_agg desc - ,brand_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query3") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select dt.d_year + ,item.i_brand_id brand_id + ,item.i_brand brand + ,sum(ss_sales_price) sum_agg + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manufact_id = 816 + and dt.d_moy=11 + group by dt.d_year + ,item.i_brand + ,item.i_brand_id + order by dt.d_year + ,sum_agg desc + ,brand_id + limit 100""" + qt_ds_shape_3 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query30.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query30.groovy index 722fa5d8ad8d94..f4c63d01ba6eda 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query30.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query30.groovy @@ -1,70 +1,64 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query30") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_30 ''' - explain shape plan - - - - -with customer_total_return as - (select wr_returning_customer_sk as ctr_customer_sk - ,ca_state as ctr_state, - sum(wr_return_amt) as ctr_total_return - from web_returns - ,date_dim - ,customer_address - where wr_returned_date_sk = d_date_sk - and d_year =2002 - and wr_returning_addr_sk = ca_address_sk - group by wr_returning_customer_sk - ,ca_state) - select c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag - ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address - ,c_last_review_date_sk,ctr_total_return - from customer_total_return ctr1 - ,customer_address - ,customer - where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 - from customer_total_return ctr2 - where ctr1.ctr_state = ctr2.ctr_state) - and ca_address_sk = c_current_addr_sk - and ca_state = 'IN' - and ctr1.ctr_customer_sk = c_customer_sk - order by c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag - ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address - ,c_last_review_date_sk,ctr_total_return -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query30") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """with customer_total_return as + (select wr_returning_customer_sk as ctr_customer_sk + ,ca_state as ctr_state, + sum(wr_return_amt) as ctr_total_return + from web_returns + ,date_dim + ,customer_address + where wr_returned_date_sk = d_date_sk + and d_year =2002 + and wr_returning_addr_sk = ca_address_sk + group by wr_returning_customer_sk + ,ca_state) + select c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag + ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address + ,c_last_review_date_sk,ctr_total_return + from customer_total_return ctr1 + ,customer_address + ,customer + where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 + from customer_total_return ctr2 + where ctr1.ctr_state = ctr2.ctr_state) + and ca_address_sk = c_current_addr_sk + and ca_state = 'IN' + and ctr1.ctr_customer_sk = c_customer_sk + order by c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag + ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address + ,c_last_review_date_sk,ctr_total_return +limit 100""" + qt_ds_shape_30 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query31.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query31.groovy index b72e9059e4a725..e9eca0c98dd06a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query31.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query31.groovy @@ -24,20 +24,12 @@ suite("query31") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_31 ''' - explain shape plan - - - - -with ss as + sql 'set enable_runtime_filter_prune=false' + def ds = """with ss as (select ca_county,d_qoy, d_year,sum(ss_ext_sales_price) as store_sales from store_sales,date_dim,customer_address where ss_sold_date_sk = d_date_sk @@ -85,7 +77,9 @@ with ss as > case when ss1.store_sales > 0 then ss2.store_sales/ss1.store_sales else null end and case when ws2.web_sales > 0 then ws3.web_sales/ws2.web_sales else null end > case when ss2.store_sales > 0 then ss3.store_sales/ss2.store_sales else null end - order by web_q1_q2_increase; - - ''' + order by web_q1_q2_increase""" + qt_ds_shape_31 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query32.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query32.groovy index 1c6d3947f0c266..aff6ba2abb6424 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query32.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query32.groovy @@ -1,67 +1,61 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query32") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_32 ''' - explain shape plan - - - - -select sum(cs_ext_discount_amt) as "excess discount amount" -from - catalog_sales - ,item - ,date_dim -where -i_manufact_id = 29 -and i_item_sk = cs_item_sk -and d_date between '1999-01-07' and - (cast('1999-01-07' as date) + interval 90 day) -and d_date_sk = cs_sold_date_sk -and cs_ext_discount_amt - > ( - select - 1.3 * avg(cs_ext_discount_amt) - from - catalog_sales - ,date_dim - where - cs_item_sk = i_item_sk - and d_date between '1999-01-07' and - (cast('1999-01-07' as date) + interval 90 day) - and d_date_sk = cs_sold_date_sk - ) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query32") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select sum(cs_ext_discount_amt) as "excess discount amount" +from + catalog_sales + ,item + ,date_dim +where +i_manufact_id = 29 +and i_item_sk = cs_item_sk +and d_date between '1999-01-07' and + (cast('1999-01-07' as date) + interval 90 day) +and d_date_sk = cs_sold_date_sk +and cs_ext_discount_amt + > ( + select + 1.3 * avg(cs_ext_discount_amt) + from + catalog_sales + ,date_dim + where + cs_item_sk = i_item_sk + and d_date between '1999-01-07' and + (cast('1999-01-07' as date) + interval 90 day) + and d_date_sk = cs_sold_date_sk + ) +limit 100""" + qt_ds_shape_32 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query33.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query33.groovy index 24790aaf8776f3..46fb7dd0b2ee94 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query33.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query33.groovy @@ -24,20 +24,12 @@ suite("query33") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_33 ''' - explain shape plan - - - - -with ss as ( + sql 'set enable_runtime_filter_prune=false' + def ds = """with ss as ( select i_manufact_id,sum(ss_ext_sales_price) total_sales from @@ -108,7 +100,9 @@ where i_category in ('Home')) select * from ws) tmp1 group by i_manufact_id order by total_sales -limit 100; - - ''' +limit 100""" + qt_ds_shape_33 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query34.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query34.groovy index 48242ef10cb091..c74f7305c4a75e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query34.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query34.groovy @@ -1,70 +1,64 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query34") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_34 ''' - explain shape plan - - - - -select c_last_name - ,c_first_name - ,c_salutation - ,c_preferred_cust_flag - ,ss_ticket_number - ,cnt from - (select ss_ticket_number - ,ss_customer_sk - ,count(*) cnt - from store_sales,date_dim,store,household_demographics - where store_sales.ss_sold_date_sk = date_dim.d_date_sk - and store_sales.ss_store_sk = store.s_store_sk - and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk - and (date_dim.d_dom between 1 and 3 or date_dim.d_dom between 25 and 28) - and (household_demographics.hd_buy_potential = '1001-5000' or - household_demographics.hd_buy_potential = '0-500') - and household_demographics.hd_vehicle_count > 0 - and (case when household_demographics.hd_vehicle_count > 0 - then household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count - else null - end) > 1.2 - and date_dim.d_year in (1998,1998+1,1998+2) - and store.s_county in ('Ziebach County','Daviess County','Walker County','Richland County', - 'Barrow County','Franklin Parish','Williamson County','Luce County') - group by ss_ticket_number,ss_customer_sk) dn,customer - where ss_customer_sk = c_customer_sk - and cnt between 15 and 20 - order by c_last_name,c_first_name,c_salutation,c_preferred_cust_flag desc, ss_ticket_number; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query34") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select c_last_name + ,c_first_name + ,c_salutation + ,c_preferred_cust_flag + ,ss_ticket_number + ,cnt from + (select ss_ticket_number + ,ss_customer_sk + ,count(*) cnt + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and (date_dim.d_dom between 1 and 3 or date_dim.d_dom between 25 and 28) + and (household_demographics.hd_buy_potential = '1001-5000' or + household_demographics.hd_buy_potential = '0-500') + and household_demographics.hd_vehicle_count > 0 + and (case when household_demographics.hd_vehicle_count > 0 + then household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count + else null + end) > 1.2 + and date_dim.d_year in (1998,1998+1,1998+2) + and store.s_county in ('Ziebach County','Daviess County','Walker County','Richland County', + 'Barrow County','Franklin Parish','Williamson County','Luce County') + group by ss_ticket_number,ss_customer_sk) dn,customer + where ss_customer_sk = c_customer_sk + and cnt between 15 and 20 + order by c_last_name,c_first_name,c_salutation,c_preferred_cust_flag desc, ss_ticket_number""" + qt_ds_shape_34 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query35.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query35.groovy index aacc9603a4d722..b0ed3d5ece05b0 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query35.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query35.groovy @@ -24,20 +24,12 @@ suite("query35") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_35 ''' - explain shape plan - - - - -select + sql 'set enable_runtime_filter_prune=false' + def ds = """select ca_state, cd_gender, cd_marital_status, @@ -91,7 +83,9 @@ select cd_dep_count, cd_dep_employed_count, cd_dep_college_count - limit 100; - - ''' + limit 100""" + qt_ds_shape_35 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query36.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query36.groovy index 09041f90d1e236..55daeae129d833 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query36.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query36.groovy @@ -1,69 +1,63 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query36") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_36 ''' - explain shape plan - - - - -select - sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin - ,i_category - ,i_class - ,grouping(i_category)+grouping(i_class) as lochierarchy - ,rank() over ( - partition by grouping(i_category)+grouping(i_class), - case when grouping(i_class) = 0 then i_category end - order by sum(ss_net_profit)/sum(ss_ext_sales_price) asc) as rank_within_parent - from - store_sales - ,date_dim d1 - ,item - ,store - where - d1.d_year = 2002 - and d1.d_date_sk = ss_sold_date_sk - and i_item_sk = ss_item_sk - and s_store_sk = ss_store_sk - and s_state in ('SD','TN','GA','SC', - 'MO','AL','MI','OH') - group by rollup(i_category,i_class) - order by - lochierarchy desc - ,case when lochierarchy = 0 then i_category end - ,rank_within_parent - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query36") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select + sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin + ,i_category + ,i_class + ,grouping(i_category)+grouping(i_class) as lochierarchy + ,rank() over ( + partition by grouping(i_category)+grouping(i_class), + case when grouping(i_class) = 0 then i_category end + order by sum(ss_net_profit)/sum(ss_ext_sales_price) asc) as rank_within_parent + from + store_sales + ,date_dim d1 + ,item + ,store + where + d1.d_year = 2002 + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and s_state in ('SD','TN','GA','SC', + 'MO','AL','MI','OH') + group by rollup(i_category,i_class) + order by + lochierarchy desc + ,case when lochierarchy = 0 then i_category end + ,rank_within_parent + limit 100""" + qt_ds_shape_36 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query37.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query37.groovy index d68dc6f22a154e..07babb9ceeaafc 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query37.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query37.groovy @@ -1,56 +1,50 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query37") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_37 ''' - explain shape plan - - - - -select i_item_id - ,i_item_desc - ,i_current_price - from item, inventory, date_dim, catalog_sales - where i_current_price between 45 and 45 + 30 - and inv_item_sk = i_item_sk - and d_date_sk=inv_date_sk - and d_date between cast('1999-02-21' as date) and (cast('1999-02-21' as date) + interval 60 day) - and i_manufact_id in (856,707,1000,747) - and inv_quantity_on_hand between 100 and 500 - and cs_item_sk = i_item_sk - group by i_item_id,i_item_desc,i_current_price - order by i_item_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query37") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id + ,i_item_desc + ,i_current_price + from item, inventory, date_dim, catalog_sales + where i_current_price between 45 and 45 + 30 + and inv_item_sk = i_item_sk + and d_date_sk=inv_date_sk + and d_date between cast('1999-02-21' as date) and (cast('1999-02-21' as date) + interval 60 day) + and i_manufact_id in (856,707,1000,747) + and inv_quantity_on_hand between 100 and 500 + and cs_item_sk = i_item_sk + group by i_item_id,i_item_desc,i_current_price + order by i_item_id + limit 100""" + qt_ds_shape_37 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query38.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query38.groovy index f60436160d225b..0827da6727d4d2 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query38.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query38.groovy @@ -1,62 +1,56 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query38") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_38 ''' - explain shape plan - - - - -select count(*) from ( - select distinct c_last_name, c_first_name, d_date - from store_sales, date_dim, customer - where store_sales.ss_sold_date_sk = date_dim.d_date_sk - and store_sales.ss_customer_sk = customer.c_customer_sk - and d_month_seq between 1183 and 1183 + 11 - intersect - select distinct c_last_name, c_first_name, d_date - from catalog_sales, date_dim, customer - where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk - and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk - and d_month_seq between 1183 and 1183 + 11 - intersect - select distinct c_last_name, c_first_name, d_date - from web_sales, date_dim, customer - where web_sales.ws_sold_date_sk = date_dim.d_date_sk - and web_sales.ws_bill_customer_sk = customer.c_customer_sk - and d_month_seq between 1183 and 1183 + 11 -) hot_cust -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query38") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select count(*) from ( + select distinct c_last_name, c_first_name, d_date + from store_sales, date_dim, customer + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_customer_sk = customer.c_customer_sk + and d_month_seq between 1183 and 1183 + 11 + intersect + select distinct c_last_name, c_first_name, d_date + from catalog_sales, date_dim, customer + where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk + and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1183 and 1183 + 11 + intersect + select distinct c_last_name, c_first_name, d_date + from web_sales, date_dim, customer + where web_sales.ws_sold_date_sk = date_dim.d_date_sk + and web_sales.ws_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1183 and 1183 + 11 +) hot_cust +limit 100""" + qt_ds_shape_38 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query39.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query39.groovy index 887827e2101494..f6c57cba9cc95a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query39.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query39.groovy @@ -1,67 +1,60 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query39") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_39 ''' - explain shape plan - - - - -with inv as -(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy - ,stdev,mean, case mean when 0 then null else stdev/mean end cov - from(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy - ,stddev_samp(inv_quantity_on_hand) stdev,avg(inv_quantity_on_hand) mean - from inventory - ,item - ,warehouse - ,date_dim - where inv_item_sk = i_item_sk - and inv_warehouse_sk = w_warehouse_sk - and inv_date_sk = d_date_sk - and d_year =1998 - group by w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy) foo - where case mean when 0 then 0 else stdev/mean end > 1) -select inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean, inv1.cov - ,inv2.w_warehouse_sk,inv2.i_item_sk,inv2.d_moy,inv2.mean, inv2.cov -from inv inv1,inv inv2 -where inv1.i_item_sk = inv2.i_item_sk - and inv1.w_warehouse_sk = inv2.w_warehouse_sk - and inv1.d_moy=1 - and inv2.d_moy=1+1 -order by inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean,inv1.cov - ,inv2.d_moy,inv2.mean, inv2.cov -; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query39") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """with inv as +(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stdev,mean, case mean when 0 then null else stdev/mean end cov + from(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stddev_samp(inv_quantity_on_hand) stdev,avg(inv_quantity_on_hand) mean + from inventory + ,item + ,warehouse + ,date_dim + where inv_item_sk = i_item_sk + and inv_warehouse_sk = w_warehouse_sk + and inv_date_sk = d_date_sk + and d_year =1998 + group by w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy) foo + where case mean when 0 then 0 else stdev/mean end > 1) +select inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean, inv1.cov + ,inv2.w_warehouse_sk,inv2.i_item_sk,inv2.d_moy,inv2.mean, inv2.cov +from inv inv1,inv inv2 +where inv1.i_item_sk = inv2.i_item_sk + and inv1.w_warehouse_sk = inv2.w_warehouse_sk + and inv1.d_moy=1 + and inv2.d_moy=1+1 +order by inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean,inv1.cov + ,inv2.d_moy,inv2.mean, inv2.cov""" + qt_ds_shape_39 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query4.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query4.groovy index 76e69f1721868f..5bbb6a982c791f 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query4.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query4.groovy @@ -24,18 +24,12 @@ suite("query4") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_4 ''' - explain shape plan - - -with year_total as ( + sql 'set enable_runtime_filter_prune=false' + def ds = """with year_total as ( select c_customer_id customer_id ,c_first_name customer_first_name ,c_last_name customer_last_name @@ -147,7 +141,9 @@ union all ,t_s_secyear.customer_first_name ,t_s_secyear.customer_last_name ,t_s_secyear.customer_birth_country -limit 100; - - ''' +limit 100""" + qt_ds_shape_4 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query40.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query40.groovy index cb4f5df64d7e90..7cc861a9a5c584 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query40.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query40.groovy @@ -1,66 +1,61 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query40") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_40 ''' - explain shape plan - - - -select - w_state - ,i_item_id - ,sum(case when (cast(d_date as date) < cast ('2001-04-02' as date)) - then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_before - ,sum(case when (cast(d_date as date) >= cast ('2001-04-02' as date)) - then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_after - from - catalog_sales left outer join catalog_returns on - (cs_order_number = cr_order_number - and cs_item_sk = cr_item_sk) - ,warehouse - ,item - ,date_dim - where - i_current_price between 0.99 and 1.49 - and i_item_sk = cs_item_sk - and cs_warehouse_sk = w_warehouse_sk - and cs_sold_date_sk = d_date_sk - and d_date between (cast ('2001-04-02' as date) - interval 30 day) - and (cast ('2001-04-02' as date) + interval 30 day) - group by - w_state,i_item_id - order by w_state,i_item_id -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query40") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select + w_state + ,i_item_id + ,sum(case when (cast(d_date as date) < cast ('2001-04-02' as date)) + then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_before + ,sum(case when (cast(d_date as date) >= cast ('2001-04-02' as date)) + then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_after + from + catalog_sales left outer join catalog_returns on + (cs_order_number = cr_order_number + and cs_item_sk = cr_item_sk) + ,warehouse + ,item + ,date_dim + where + i_current_price between 0.99 and 1.49 + and i_item_sk = cs_item_sk + and cs_warehouse_sk = w_warehouse_sk + and cs_sold_date_sk = d_date_sk + and d_date between (cast ('2001-04-02' as date) - interval 30 day) + and (cast ('2001-04-02' as date) + interval 30 day) + group by + w_state,i_item_id + order by w_state,i_item_id +limit 100""" + qt_ds_shape_40 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query41.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query41.groovy index 6809cd2bbab265..f9197196800162 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query41.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query41.groovy @@ -24,20 +24,12 @@ suite("query41") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_41 ''' - explain shape plan - - - - -select distinct(i_product_name) + sql 'set enable_runtime_filter_prune=false' + def ds = """select distinct(i_product_name) from item i1 where i_manufact_id between 748 and 748+40 and (select count(*) as item_cnt @@ -85,7 +77,9 @@ select distinct(i_product_name) (i_size = 'medium' or i_size = 'economy') )))) > 0 order by i_product_name - limit 100; - - ''' + limit 100""" + qt_ds_shape_41 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query42.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query42.groovy index 8e88307e217bae..1480eaf8503b6d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query42.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query42.groovy @@ -1,61 +1,55 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query42") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_42 ''' - explain shape plan - - - - -select dt.d_year - ,item.i_category_id - ,item.i_category - ,sum(ss_ext_sales_price) - from date_dim dt - ,store_sales - ,item - where dt.d_date_sk = store_sales.ss_sold_date_sk - and store_sales.ss_item_sk = item.i_item_sk - and item.i_manager_id = 1 - and dt.d_moy=11 - and dt.d_year=2002 - group by dt.d_year - ,item.i_category_id - ,item.i_category - order by sum(ss_ext_sales_price) desc,dt.d_year - ,item.i_category_id - ,item.i_category -limit 100 ; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query42") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select dt.d_year + ,item.i_category_id + ,item.i_category + ,sum(ss_ext_sales_price) + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manager_id = 1 + and dt.d_moy=11 + and dt.d_year=2002 + group by dt.d_year + ,item.i_category_id + ,item.i_category + order by sum(ss_ext_sales_price) desc,dt.d_year + ,item.i_category_id + ,item.i_category +limit 100 """ + qt_ds_shape_42 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query43.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query43.groovy index 4c32ff4d6a3268..7f596e7a471ec8 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query43.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query43.groovy @@ -1,58 +1,52 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query43") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_43 ''' - explain shape plan - - - - -select s_store_name, s_store_id, - sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, - sum(case when (d_day_name='Monday') then ss_sales_price else null end) mon_sales, - sum(case when (d_day_name='Tuesday') then ss_sales_price else null end) tue_sales, - sum(case when (d_day_name='Wednesday') then ss_sales_price else null end) wed_sales, - sum(case when (d_day_name='Thursday') then ss_sales_price else null end) thu_sales, - sum(case when (d_day_name='Friday') then ss_sales_price else null end) fri_sales, - sum(case when (d_day_name='Saturday') then ss_sales_price else null end) sat_sales - from date_dim, store_sales, store - where d_date_sk = ss_sold_date_sk and - s_store_sk = ss_store_sk and - s_gmt_offset = -5 and - d_year = 2000 - group by s_store_name, s_store_id - order by s_store_name, s_store_id,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query43") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select s_store_name, s_store_id, + sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, + sum(case when (d_day_name='Monday') then ss_sales_price else null end) mon_sales, + sum(case when (d_day_name='Tuesday') then ss_sales_price else null end) tue_sales, + sum(case when (d_day_name='Wednesday') then ss_sales_price else null end) wed_sales, + sum(case when (d_day_name='Thursday') then ss_sales_price else null end) thu_sales, + sum(case when (d_day_name='Friday') then ss_sales_price else null end) fri_sales, + sum(case when (d_day_name='Saturday') then ss_sales_price else null end) sat_sales + from date_dim, store_sales, store + where d_date_sk = ss_sold_date_sk and + s_store_sk = ss_store_sk and + s_gmt_offset = -5 and + d_year = 2000 + group by s_store_name, s_store_id + order by s_store_name, s_store_id,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales + limit 100""" + qt_ds_shape_43 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query44.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query44.groovy index 77a1698cf33aea..ca7b19e4d0fa1e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query44.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query44.groovy @@ -24,20 +24,12 @@ suite("query44") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_44 ''' - explain shape plan - - - - -select asceding.rnk, i1.i_product_name best_performing, i2.i_product_name worst_performing + sql 'set enable_runtime_filter_prune=false' + def ds = """select asceding.rnk, i1.i_product_name best_performing, i2.i_product_name worst_performing from(select * from (select item_sk,rank() over (order by rank_col asc) rnk from (select ss_item_sk item_sk,avg(ss_net_profit) rank_col @@ -68,7 +60,9 @@ where asceding.rnk = descending.rnk and i1.i_item_sk=asceding.item_sk and i2.i_item_sk=descending.item_sk order by asceding.rnk -limit 100; - - ''' +limit 100""" + qt_ds_shape_44 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query45.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query45.groovy index 9218cdfcf09b50..e2c985d366559f 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query45.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query45.groovy @@ -1,59 +1,53 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query45") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_45 ''' - explain shape plan - - - - -select ca_zip, ca_city, sum(ws_sales_price) - from web_sales, customer, customer_address, date_dim, item - where ws_bill_customer_sk = c_customer_sk - and c_current_addr_sk = ca_address_sk - and ws_item_sk = i_item_sk - and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', '85392', '85460', '80348', '81792') - or - i_item_id in (select i_item_id - from item - where i_item_sk in (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) - ) - ) - and ws_sold_date_sk = d_date_sk - and d_qoy = 2 and d_year = 2000 - group by ca_zip, ca_city - order by ca_zip, ca_city - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query45") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select ca_zip, ca_city, sum(ws_sales_price) + from web_sales, customer, customer_address, date_dim, item + where ws_bill_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and ws_item_sk = i_item_sk + and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', '85392', '85460', '80348', '81792') + or + i_item_id in (select i_item_id + from item + where i_item_sk in (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) + ) + ) + and ws_sold_date_sk = d_date_sk + and d_qoy = 2 and d_year = 2000 + group by ca_zip, ca_city + order by ca_zip, ca_city + limit 100""" + qt_ds_shape_45 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query46.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query46.groovy index 385ed61e5ad1da..a4c6cd1bbc4d16 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query46.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query46.groovy @@ -24,20 +24,12 @@ suite("query46") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_46 ''' - explain shape plan - - - - -select c_last_name + sql 'set enable_runtime_filter_prune=false' + def ds = """select c_last_name ,c_first_name ,ca_city ,bought_city @@ -68,7 +60,9 @@ select c_last_name ,ca_city ,bought_city ,ss_ticket_number - limit 100; - - ''' + limit 100""" + qt_ds_shape_46 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query47.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query47.groovy index 2ae2219a1bc566..3e984c7a307f30 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query47.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query47.groovy @@ -24,18 +24,12 @@ suite("query47") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_47 ''' - explain shape plan - - -with v1 as( + sql 'set enable_runtime_filter_prune=false' + def ds = """with v1 as( select i_category, i_brand, s_store_name, s_company_name, d_year, d_moy, @@ -82,7 +76,9 @@ with v1 as( avg_monthly_sales > 0 and case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 order by sum_sales - avg_monthly_sales, nsum - limit 100; - - ''' + limit 100""" + qt_ds_shape_47 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query48.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query48.groovy index 0c7d1219da307f..b710a3f46cedd5 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query48.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query48.groovy @@ -24,20 +24,12 @@ suite("query48") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_48 ''' - explain shape plan - - - - -select sum (ss_quantity) + sql 'set enable_runtime_filter_prune=false' + def ds = """select sum (ss_quantity) from store_sales, store, customer_demographics, customer_address, date_dim where s_store_sk = ss_store_sk and ss_sold_date_sk = d_date_sk and d_year = 1999 @@ -100,7 +92,9 @@ select sum (ss_quantity) and ss_net_profit between 50 and 25000 ) ) -; - - ''' +""" + qt_ds_shape_48 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query49.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query49.groovy index 2d77f3ccdc381f..2a0e9e029efa41 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query49.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query49.groovy @@ -24,20 +24,12 @@ suite("query49") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_49 ''' - explain shape plan - - - - -select channel, item, return_ratio, return_rank, currency_rank from + sql 'set enable_runtime_filter_prune=false' + def ds = """select channel, item, return_ratio, return_rank, currency_rank from (select 'web' as channel ,web.item @@ -162,7 +154,9 @@ select channel, item, return_ratio, return_rank, currency_rank from ) ) t order by 1,4,5,2 - limit 100; - - ''' + limit 100""" + qt_ds_shape_49 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query5.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query5.groovy index 7a0645e146b4a6..64e0d81353744e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query5.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query5.groovy @@ -24,20 +24,12 @@ suite("query5") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_5 ''' - explain shape plan - - - - -with ssr as + sql 'set enable_runtime_filter_prune=false' + def ds = """with ssr as (select s_store_id, sum(sales_price) as sales, sum(profit) as profit, @@ -161,7 +153,9 @@ with ssr as group by rollup (channel, id) order by channel ,id - limit 100; - - ''' + limit 100""" + qt_ds_shape_5 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query50.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query50.groovy index 48f1e30628b59f..4f332641a6ddb0 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query50.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query50.groovy @@ -24,20 +24,12 @@ suite("query50") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_50 ''' - explain shape plan - - - - -select + sql 'set enable_runtime_filter_prune=false' + def ds = """select s_store_name ,s_company_id ,s_street_number @@ -92,7 +84,9 @@ order by s_store_name ,s_county ,s_state ,s_zip -limit 100; - - ''' +limit 100""" + qt_ds_shape_50 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query51.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query51.groovy index bd9b3c9401cf43..4bc2c956fff2db 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query51.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query51.groovy @@ -24,20 +24,12 @@ suite("query51") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_51 ''' - explain shape plan - - - - -WITH web_v1 as ( + sql 'set enable_runtime_filter_prune=false' + def ds = """WITH web_v1 as ( select ws_item_sk item_sk, d_date, sum(sum(ws_sales_price)) @@ -78,7 +70,9 @@ from (select item_sk where web_cumulative > store_cumulative order by item_sk ,d_date -limit 100; - - ''' +limit 100""" + qt_ds_shape_51 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query52.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query52.groovy index 1df73679d1de2e..e730303177a523 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query52.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query52.groovy @@ -1,61 +1,55 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query52") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_52 ''' - explain shape plan - - - - -select dt.d_year - ,item.i_brand_id brand_id - ,item.i_brand brand - ,sum(ss_ext_sales_price) ext_price - from date_dim dt - ,store_sales - ,item - where dt.d_date_sk = store_sales.ss_sold_date_sk - and store_sales.ss_item_sk = item.i_item_sk - and item.i_manager_id = 1 - and dt.d_moy=12 - and dt.d_year=2002 - group by dt.d_year - ,item.i_brand - ,item.i_brand_id - order by dt.d_year - ,ext_price desc - ,brand_id -limit 100 ; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query52") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select dt.d_year + ,item.i_brand_id brand_id + ,item.i_brand brand + ,sum(ss_ext_sales_price) ext_price + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manager_id = 1 + and dt.d_moy=12 + and dt.d_year=2002 + group by dt.d_year + ,item.i_brand + ,item.i_brand_id + order by dt.d_year + ,ext_price desc + ,brand_id +limit 100 """ + qt_ds_shape_52 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query53.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query53.groovy index c7b25c5f6f2f60..aa7f55a6f3b034 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query53.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query53.groovy @@ -1,67 +1,61 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query53") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_53 ''' - explain shape plan - - - - -select * from -(select i_manufact_id, -sum(ss_sales_price) sum_sales, -avg(sum(ss_sales_price)) over (partition by i_manufact_id) avg_quarterly_sales -from item, store_sales, date_dim, store -where ss_item_sk = i_item_sk and -ss_sold_date_sk = d_date_sk and -ss_store_sk = s_store_sk and -d_month_seq in (1200,1200+1,1200+2,1200+3,1200+4,1200+5,1200+6,1200+7,1200+8,1200+9,1200+10,1200+11) and -((i_category in ('Books','Children','Electronics') and -i_class in ('personal','portable','reference','self-help') and -i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', - 'exportiunivamalg #9','scholaramalgamalg #9')) -or(i_category in ('Women','Music','Men') and -i_class in ('accessories','classical','fragrances','pants') and -i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', - 'importoamalg #1'))) -group by i_manufact_id, d_qoy ) tmp1 -where case when avg_quarterly_sales > 0 - then abs (sum_sales - avg_quarterly_sales)/ avg_quarterly_sales - else null end > 0.1 -order by avg_quarterly_sales, - sum_sales, - i_manufact_id -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query53") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select * from +(select i_manufact_id, +sum(ss_sales_price) sum_sales, +avg(sum(ss_sales_price)) over (partition by i_manufact_id) avg_quarterly_sales +from item, store_sales, date_dim, store +where ss_item_sk = i_item_sk and +ss_sold_date_sk = d_date_sk and +ss_store_sk = s_store_sk and +d_month_seq in (1200,1200+1,1200+2,1200+3,1200+4,1200+5,1200+6,1200+7,1200+8,1200+9,1200+10,1200+11) and +((i_category in ('Books','Children','Electronics') and +i_class in ('personal','portable','reference','self-help') and +i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', + 'exportiunivamalg #9','scholaramalgamalg #9')) +or(i_category in ('Women','Music','Men') and +i_class in ('accessories','classical','fragrances','pants') and +i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', + 'importoamalg #1'))) +group by i_manufact_id, d_qoy ) tmp1 +where case when avg_quarterly_sales > 0 + then abs (sum_sales - avg_quarterly_sales)/ avg_quarterly_sales + else null end > 0.1 +order by avg_quarterly_sales, + sum_sales, + i_manufact_id +limit 100""" + qt_ds_shape_53 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query54.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query54.groovy index d3e52c9a0e0648..6cb457ef82d8e3 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query54.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query54.groovy @@ -24,20 +24,12 @@ suite("query54") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_54 ''' - explain shape plan - - - - -with my_customers as ( + sql 'set enable_runtime_filter_prune=false' + def ds = """with my_customers as ( select distinct c_customer_sk , c_current_addr_sk from @@ -89,7 +81,9 @@ with my_customers as ( from segments group by segment order by segment, num_customers - limit 100; - - ''' + limit 100""" + qt_ds_shape_54 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query55.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query55.groovy index 5514378e798cfe..071a3b65fcfb70 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query55.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query55.groovy @@ -1,53 +1,47 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query55") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_55 ''' - explain shape plan - - - - -select i_brand_id brand_id, i_brand brand, - sum(ss_ext_sales_price) ext_price - from date_dim, store_sales, item - where d_date_sk = ss_sold_date_sk - and ss_item_sk = i_item_sk - and i_manager_id=100 - and d_moy=12 - and d_year=2000 - group by i_brand, i_brand_id - order by ext_price desc, i_brand_id -limit 100 ; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query55") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_brand_id brand_id, i_brand brand, + sum(ss_ext_sales_price) ext_price + from date_dim, store_sales, item + where d_date_sk = ss_sold_date_sk + and ss_item_sk = i_item_sk + and i_manager_id=100 + and d_moy=12 + and d_year=2000 + group by i_brand, i_brand_id + order by ext_price desc, i_brand_id +limit 100 """ + qt_ds_shape_55 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query56.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query56.groovy index ba9e56a256d6cb..8570ca50f46646 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query56.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query56.groovy @@ -24,20 +24,12 @@ suite("query56") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_56 ''' - explain shape plan - - - - -with ss as ( + sql 'set enable_runtime_filter_prune=false' + def ds = """with ss as ( select i_item_id,sum(ss_ext_sales_price) total_sales from store_sales, @@ -102,7 +94,9 @@ where i_color in ('powder','green','cyan')) group by i_item_id order by total_sales, i_item_id - limit 100; - - ''' + limit 100""" + qt_ds_shape_56 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query57.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query57.groovy index 7e2bdd4437ce46..04218ef12b6ea6 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query57.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query57.groovy @@ -24,19 +24,12 @@ suite("query57") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_57 ''' - explain shape plan - - - -with v1 as( + sql 'set enable_runtime_filter_prune=false' + def ds = """with v1 as( select i_category, i_brand, cc_name, d_year, d_moy, @@ -80,7 +73,9 @@ with v1 as( avg_monthly_sales > 0 and case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 order by sum_sales - avg_monthly_sales, nsum - limit 100; - - ''' + limit 100""" + qt_ds_shape_57 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query58.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query58.groovy index 56a3ac15ef5abb..c64496db9d5153 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query58.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query58.groovy @@ -24,20 +24,12 @@ suite("query58") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_58 ''' - explain shape plan - - - - -with ss_items as + sql 'set enable_runtime_filter_prune=false' + def ds = """with ss_items as (select i_item_id item_id ,sum(ss_ext_sales_price) ss_item_rev from store_sales @@ -98,7 +90,9 @@ with ss_items as and ws_item_rev between 0.9 * cs_item_rev and 1.1 * cs_item_rev order by item_id ,ss_item_rev - limit 100; - - ''' + limit 100""" + qt_ds_shape_58 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query59.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query59.groovy index f0db9cad4049e6..1ffbc372d762ca 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query59.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query59.groovy @@ -24,19 +24,12 @@ suite("query59") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_59 ''' - explain shape plan - - - -with wss as + sql 'set enable_runtime_filter_prune=false' + def ds = """with wss as (select d_week_seq, ss_store_sk, sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, @@ -76,7 +69,9 @@ with wss as where s_store_id1=s_store_id2 and d_week_seq1=d_week_seq2-52 order by s_store_name1,s_store_id1,d_week_seq1 -limit 100; - - ''' +limit 100""" + qt_ds_shape_59 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query6.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query6.groovy index 8c5faca6264100..6de72a7d728a0a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query6.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query6.groovy @@ -1,68 +1,59 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query6") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - // TODO: uncomment following line to get better shape - // sql 'set max_join_number_bushy_tree=6' - - qt_ds_shape_6 ''' - explain shape plan - - - - -select a.ca_state state, count(*) cnt - from customer_address a - ,customer c - ,store_sales s - ,date_dim d - ,item i - where a.ca_address_sk = c.c_current_addr_sk - and c.c_customer_sk = s.ss_customer_sk - and s.ss_sold_date_sk = d.d_date_sk - and s.ss_item_sk = i.i_item_sk - and d.d_month_seq = - (select distinct (d_month_seq) - from date_dim - where d_year = 2002 - and d_moy = 3 ) - and i.i_current_price > 1.2 * - (select avg(j.i_current_price) - from item j - where j.i_category = i.i_category) - group by a.ca_state - having count(*) >= 10 - order by cnt, a.ca_state - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query6") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select a.ca_state state, count(*) cnt + from customer_address a + ,customer c + ,store_sales s + ,date_dim d + ,item i + where a.ca_address_sk = c.c_current_addr_sk + and c.c_customer_sk = s.ss_customer_sk + and s.ss_sold_date_sk = d.d_date_sk + and s.ss_item_sk = i.i_item_sk + and d.d_month_seq = + (select distinct (d_month_seq) + from date_dim + where d_year = 2002 + and d_moy = 3 ) + and i.i_current_price > 1.2 * + (select avg(j.i_current_price) + from item j + where j.i_category = i.i_category) + group by a.ca_state + having count(*) >= 10 + order by cnt, a.ca_state + limit 100""" + qt_ds_shape_6 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query60.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query60.groovy index ff596f38ff5cf9..d110e1cc8778b5 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query60.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query60.groovy @@ -24,20 +24,12 @@ suite("query60") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_60 ''' - explain shape plan - - - - -with ss as ( + sql 'set enable_runtime_filter_prune=false' + def ds = """with ss as ( select i_item_id,sum(ss_ext_sales_price) total_sales from @@ -111,7 +103,9 @@ where i_category in ('Children')) group by i_item_id order by i_item_id ,total_sales - limit 100; - - ''' + limit 100""" + qt_ds_shape_60 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query61.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query61.groovy index f15fe6f1c16999..2cc91692109163 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query61.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query61.groovy @@ -24,20 +24,12 @@ suite("query61") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_61 ''' - explain shape plan - - - - -select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100 + sql 'set enable_runtime_filter_prune=false' + def ds = """select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100 from (select sum(ss_ext_sales_price) promotions from store_sales @@ -77,7 +69,9 @@ from and d_year = 1999 and d_moy = 11) all_sales order by promotions, total -limit 100; - - ''' +limit 100""" + qt_ds_shape_61 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query62.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query62.groovy index 655a23dd2f500a..bb7b81612f33c5 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query62.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query62.groovy @@ -24,20 +24,12 @@ suite("query62") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_62 ''' - explain shape plan - - - - -select + sql 'set enable_runtime_filter_prune=false' + def ds = """select substr(w_warehouse_name,1,20) ,sm_type ,web_name @@ -68,7 +60,9 @@ group by order by substr(w_warehouse_name,1,20) ,sm_type ,web_name -limit 100; - - ''' +limit 100""" + qt_ds_shape_62 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query63.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query63.groovy index 8e1f8641b32106..c34d27a1c377fd 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query63.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query63.groovy @@ -1,68 +1,62 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query63") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_63 ''' - explain shape plan - - - - -select * -from (select i_manager_id - ,sum(ss_sales_price) sum_sales - ,avg(sum(ss_sales_price)) over (partition by i_manager_id) avg_monthly_sales - from item - ,store_sales - ,date_dim - ,store - where ss_item_sk = i_item_sk - and ss_sold_date_sk = d_date_sk - and ss_store_sk = s_store_sk - and d_month_seq in (1181,1181+1,1181+2,1181+3,1181+4,1181+5,1181+6,1181+7,1181+8,1181+9,1181+10,1181+11) - and (( i_category in ('Books','Children','Electronics') - and i_class in ('personal','portable','reference','self-help') - and i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', - 'exportiunivamalg #9','scholaramalgamalg #9')) - or( i_category in ('Women','Music','Men') - and i_class in ('accessories','classical','fragrances','pants') - and i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', - 'importoamalg #1'))) -group by i_manager_id, d_moy) tmp1 -where case when avg_monthly_sales > 0 then abs (sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 -order by i_manager_id - ,avg_monthly_sales - ,sum_sales -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query63") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select * +from (select i_manager_id + ,sum(ss_sales_price) sum_sales + ,avg(sum(ss_sales_price)) over (partition by i_manager_id) avg_monthly_sales + from item + ,store_sales + ,date_dim + ,store + where ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and ss_store_sk = s_store_sk + and d_month_seq in (1181,1181+1,1181+2,1181+3,1181+4,1181+5,1181+6,1181+7,1181+8,1181+9,1181+10,1181+11) + and (( i_category in ('Books','Children','Electronics') + and i_class in ('personal','portable','reference','self-help') + and i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', + 'exportiunivamalg #9','scholaramalgamalg #9')) + or( i_category in ('Women','Music','Men') + and i_class in ('accessories','classical','fragrances','pants') + and i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', + 'importoamalg #1'))) +group by i_manager_id, d_moy) tmp1 +where case when avg_monthly_sales > 0 then abs (sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 +order by i_manager_id + ,avg_monthly_sales + ,sum_sales +limit 100""" + qt_ds_shape_63 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query64.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query64.groovy index b0aec67a80da43..1cca3ba9656104 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query64.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query64.groovy @@ -24,135 +24,131 @@ suite("query64") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - def ds64 = ''' - with cs_ui as - (select cs_item_sk - ,sum(cs_ext_list_price) as sale,sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit) as refund - from catalog_sales - ,catalog_returns - where cs_item_sk = cr_item_sk - and cs_order_number = cr_order_number - group by cs_item_sk - having sum(cs_ext_list_price)>2*sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit)), - cross_sales as - (select i_product_name product_name - ,i_item_sk item_sk - ,s_store_name store_name - ,s_zip store_zip - ,ad1.ca_street_number b_street_number - ,ad1.ca_street_name b_street_name - ,ad1.ca_city b_city - ,ad1.ca_zip b_zip - ,ad2.ca_street_number c_street_number - ,ad2.ca_street_name c_street_name - ,ad2.ca_city c_city - ,ad2.ca_zip c_zip - ,d1.d_year as syear - ,d2.d_year as fsyear - ,d3.d_year s2year - ,count(*) cnt - ,sum(ss_wholesale_cost) s1 - ,sum(ss_list_price) s2 - ,sum(ss_coupon_amt) s3 - FROM store_sales - ,store_returns - ,cs_ui - ,date_dim d1 - ,date_dim d2 - ,date_dim d3 - ,store - ,customer - ,customer_demographics cd1 - ,customer_demographics cd2 - ,promotion - ,household_demographics hd1 - ,household_demographics hd2 - ,customer_address ad1 - ,customer_address ad2 - ,income_band ib1 - ,income_band ib2 - ,item - WHERE ss_store_sk = s_store_sk AND - ss_sold_date_sk = d1.d_date_sk AND - ss_customer_sk = c_customer_sk AND - ss_cdemo_sk= cd1.cd_demo_sk AND - ss_hdemo_sk = hd1.hd_demo_sk AND - ss_addr_sk = ad1.ca_address_sk and - ss_item_sk = i_item_sk and - ss_item_sk = sr_item_sk and - ss_ticket_number = sr_ticket_number and - ss_item_sk = cs_ui.cs_item_sk and - c_current_cdemo_sk = cd2.cd_demo_sk AND - c_current_hdemo_sk = hd2.hd_demo_sk AND - c_current_addr_sk = ad2.ca_address_sk and - c_first_sales_date_sk = d2.d_date_sk and - c_first_shipto_date_sk = d3.d_date_sk and - ss_promo_sk = p_promo_sk and - hd1.hd_income_band_sk = ib1.ib_income_band_sk and - hd2.hd_income_band_sk = ib2.ib_income_band_sk and - cd1.cd_marital_status <> cd2.cd_marital_status and - i_color in ('blanched','medium','brown','chocolate','burlywood','drab') and - i_current_price between 23 and 23 + 10 and - i_current_price between 23 + 1 and 23 + 15 - group by i_product_name - ,i_item_sk - ,s_store_name - ,s_zip - ,ad1.ca_street_number - ,ad1.ca_street_name - ,ad1.ca_city - ,ad1.ca_zip - ,ad2.ca_street_number - ,ad2.ca_street_name - ,ad2.ca_city - ,ad2.ca_zip - ,d1.d_year - ,d2.d_year - ,d3.d_year - ) - select cs1.product_name - ,cs1.store_name - ,cs1.store_zip - ,cs1.b_street_number - ,cs1.b_street_name - ,cs1.b_city - ,cs1.b_zip - ,cs1.c_street_number - ,cs1.c_street_name - ,cs1.c_city - ,cs1.c_zip - ,cs1.syear - ,cs1.cnt - ,cs1.s1 as s11 - ,cs1.s2 as s21 - ,cs1.s3 as s31 - ,cs2.s1 as s12 - ,cs2.s2 as s22 - ,cs2.s3 as s32 - ,cs2.syear - ,cs2.cnt - from cross_sales cs1,cross_sales cs2 - where cs1.item_sk=cs2.item_sk and - cs1.syear = 2001 and - cs2.syear = 2001 + 1 and - cs2.cnt <= cs1.cnt and - cs1.store_name = cs2.store_name and - cs1.store_zip = cs2.store_zip - order by cs1.product_name - ,cs1.store_name - ,cs2.cnt - ,cs1.s1 - ,cs2.s1; - - ''' - - qt_ds_shape_64 'explain shape plan ' + ds64 - + sql 'set enable_runtime_filter_prune=false' + def ds = """with cs_ui as + (select cs_item_sk + ,sum(cs_ext_list_price) as sale,sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit) as refund + from catalog_sales + ,catalog_returns + where cs_item_sk = cr_item_sk + and cs_order_number = cr_order_number + group by cs_item_sk + having sum(cs_ext_list_price)>2*sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit)), +cross_sales as + (select i_product_name product_name + ,i_item_sk item_sk + ,s_store_name store_name + ,s_zip store_zip + ,ad1.ca_street_number b_street_number + ,ad1.ca_street_name b_street_name + ,ad1.ca_city b_city + ,ad1.ca_zip b_zip + ,ad2.ca_street_number c_street_number + ,ad2.ca_street_name c_street_name + ,ad2.ca_city c_city + ,ad2.ca_zip c_zip + ,d1.d_year as syear + ,d2.d_year as fsyear + ,d3.d_year s2year + ,count(*) cnt + ,sum(ss_wholesale_cost) s1 + ,sum(ss_list_price) s2 + ,sum(ss_coupon_amt) s3 + FROM store_sales + ,store_returns + ,cs_ui + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,customer + ,customer_demographics cd1 + ,customer_demographics cd2 + ,promotion + ,household_demographics hd1 + ,household_demographics hd2 + ,customer_address ad1 + ,customer_address ad2 + ,income_band ib1 + ,income_band ib2 + ,item + WHERE ss_store_sk = s_store_sk AND + ss_sold_date_sk = d1.d_date_sk AND + ss_customer_sk = c_customer_sk AND + ss_cdemo_sk= cd1.cd_demo_sk AND + ss_hdemo_sk = hd1.hd_demo_sk AND + ss_addr_sk = ad1.ca_address_sk and + ss_item_sk = i_item_sk and + ss_item_sk = sr_item_sk and + ss_ticket_number = sr_ticket_number and + ss_item_sk = cs_ui.cs_item_sk and + c_current_cdemo_sk = cd2.cd_demo_sk AND + c_current_hdemo_sk = hd2.hd_demo_sk AND + c_current_addr_sk = ad2.ca_address_sk and + c_first_sales_date_sk = d2.d_date_sk and + c_first_shipto_date_sk = d3.d_date_sk and + ss_promo_sk = p_promo_sk and + hd1.hd_income_band_sk = ib1.ib_income_band_sk and + hd2.hd_income_band_sk = ib2.ib_income_band_sk and + cd1.cd_marital_status <> cd2.cd_marital_status and + i_color in ('blanched','medium','brown','chocolate','burlywood','drab') and + i_current_price between 23 and 23 + 10 and + i_current_price between 23 + 1 and 23 + 15 +group by i_product_name + ,i_item_sk + ,s_store_name + ,s_zip + ,ad1.ca_street_number + ,ad1.ca_street_name + ,ad1.ca_city + ,ad1.ca_zip + ,ad2.ca_street_number + ,ad2.ca_street_name + ,ad2.ca_city + ,ad2.ca_zip + ,d1.d_year + ,d2.d_year + ,d3.d_year +) +select cs1.product_name + ,cs1.store_name + ,cs1.store_zip + ,cs1.b_street_number + ,cs1.b_street_name + ,cs1.b_city + ,cs1.b_zip + ,cs1.c_street_number + ,cs1.c_street_name + ,cs1.c_city + ,cs1.c_zip + ,cs1.syear + ,cs1.cnt + ,cs1.s1 as s11 + ,cs1.s2 as s21 + ,cs1.s3 as s31 + ,cs2.s1 as s12 + ,cs2.s2 as s22 + ,cs2.s3 as s32 + ,cs2.syear + ,cs2.cnt +from cross_sales cs1,cross_sales cs2 +where cs1.item_sk=cs2.item_sk and + cs1.syear = 2001 and + cs2.syear = 2001 + 1 and + cs2.cnt <= cs1.cnt and + cs1.store_name = cs2.store_name and + cs1.store_zip = cs2.store_zip +order by cs1.product_name + ,cs1.store_name + ,cs2.cnt + ,cs1.s1 + ,cs2.s1""" + qt_ds_shape_64 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query65.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query65.groovy index a6a0d2d5b36e9e..c7ec361c660293 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query65.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query65.groovy @@ -1,68 +1,62 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query65") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_65 ''' - explain shape plan - - - - -select - s_store_name, - i_item_desc, - sc.revenue, - i_current_price, - i_wholesale_cost, - i_brand - from store, item, - (select ss_store_sk, avg(revenue) as ave - from - (select ss_store_sk, ss_item_sk, - sum(ss_sales_price) as revenue - from store_sales, date_dim - where ss_sold_date_sk = d_date_sk and d_month_seq between 1221 and 1221+11 - group by ss_store_sk, ss_item_sk) sa - group by ss_store_sk) sb, - (select ss_store_sk, ss_item_sk, sum(ss_sales_price) as revenue - from store_sales, date_dim - where ss_sold_date_sk = d_date_sk and d_month_seq between 1221 and 1221+11 - group by ss_store_sk, ss_item_sk) sc - where sb.ss_store_sk = sc.ss_store_sk and - sc.revenue <= 0.1 * sb.ave and - s_store_sk = sc.ss_store_sk and - i_item_sk = sc.ss_item_sk - order by s_store_name, i_item_desc -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query65") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select + s_store_name, + i_item_desc, + sc.revenue, + i_current_price, + i_wholesale_cost, + i_brand + from store, item, + (select ss_store_sk, avg(revenue) as ave + from + (select ss_store_sk, ss_item_sk, + sum(ss_sales_price) as revenue + from store_sales, date_dim + where ss_sold_date_sk = d_date_sk and d_month_seq between 1221 and 1221+11 + group by ss_store_sk, ss_item_sk) sa + group by ss_store_sk) sb, + (select ss_store_sk, ss_item_sk, sum(ss_sales_price) as revenue + from store_sales, date_dim + where ss_sold_date_sk = d_date_sk and d_month_seq between 1221 and 1221+11 + group by ss_store_sk, ss_item_sk) sc + where sb.ss_store_sk = sc.ss_store_sk and + sc.revenue <= 0.1 * sb.ave and + s_store_sk = sc.ss_store_sk and + i_item_sk = sc.ss_item_sk + order by s_store_name, i_item_desc +limit 100""" + qt_ds_shape_65 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query66.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query66.groovy index 36cc7b04b94d4f..e8dc4eb3c64461 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query66.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query66.groovy @@ -24,20 +24,12 @@ suite("query66") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_66 ''' - explain shape plan - - - - -select + sql 'set enable_runtime_filter_prune=false' + def ds = """select w_warehouse_name ,w_warehouse_sq_ft ,w_city @@ -253,7 +245,9 @@ select ,ship_carriers ,year order by w_warehouse_name - limit 100; - - ''' + limit 100""" + qt_ds_shape_66 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query67.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query67.groovy index cab27fe5ea5440..57ab62b0f65f91 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query67.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query67.groovy @@ -24,20 +24,12 @@ suite("query67") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_67 ''' - explain shape plan - - - - -select * + sql 'set enable_runtime_filter_prune=false' + def ds = """select * from (select i_category ,i_class ,i_brand @@ -77,7 +69,9 @@ order by i_category ,s_store_id ,sumsales ,rk -limit 100; - - ''' +limit 100""" + qt_ds_shape_67 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query68.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query68.groovy index 15bae9a45c6671..8b05364c02e388 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query68.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query68.groovy @@ -24,20 +24,12 @@ suite("query68") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_68 ''' - explain shape plan - - - - -select c_last_name + sql 'set enable_runtime_filter_prune=false' + def ds = """select c_last_name ,c_first_name ,ca_city ,bought_city @@ -75,7 +67,9 @@ select c_last_name and current_addr.ca_city <> bought_city order by c_last_name ,ss_ticket_number - limit 100; - - ''' + limit 100""" + qt_ds_shape_68 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query69.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query69.groovy index 402248ad45bd96..b41570abb04e61 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query69.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query69.groovy @@ -24,20 +24,12 @@ suite("query69") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_69 ''' - explain shape plan - - - - -select + sql 'set enable_runtime_filter_prune=false' + def ds = """select cd_gender, cd_marital_status, cd_education_status, @@ -80,7 +72,9 @@ select cd_education_status, cd_purchase_estimate, cd_credit_rating - limit 100; - - ''' + limit 100""" + qt_ds_shape_69 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query7.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query7.groovy index 8c66fcb3a2e3c3..71e20e7ac651bb 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query7.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query7.groovy @@ -1,60 +1,54 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query7") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_7 ''' - explain shape plan - - - - -select i_item_id, - avg(ss_quantity) agg1, - avg(ss_list_price) agg2, - avg(ss_coupon_amt) agg3, - avg(ss_sales_price) agg4 - from store_sales, customer_demographics, date_dim, item, promotion - where ss_sold_date_sk = d_date_sk and - ss_item_sk = i_item_sk and - ss_cdemo_sk = cd_demo_sk and - ss_promo_sk = p_promo_sk and - cd_gender = 'F' and - cd_marital_status = 'W' and - cd_education_status = 'College' and - (p_channel_email = 'N' or p_channel_event = 'N') and - d_year = 2001 - group by i_item_id - order by i_item_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query7") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id, + avg(ss_quantity) agg1, + avg(ss_list_price) agg2, + avg(ss_coupon_amt) agg3, + avg(ss_sales_price) agg4 + from store_sales, customer_demographics, date_dim, item, promotion + where ss_sold_date_sk = d_date_sk and + ss_item_sk = i_item_sk and + ss_cdemo_sk = cd_demo_sk and + ss_promo_sk = p_promo_sk and + cd_gender = 'F' and + cd_marital_status = 'W' and + cd_education_status = 'College' and + (p_channel_email = 'N' or p_channel_event = 'N') and + d_year = 2001 + group by i_item_id + order by i_item_id + limit 100""" + qt_ds_shape_7 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query70.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query70.groovy index d2f3cf5b59f31b..66f2074a02b663 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query70.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query70.groovy @@ -24,20 +24,12 @@ suite("query70") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_70 ''' - explain shape plan - - - - -select + sql 'set enable_runtime_filter_prune=false' + def ds = """select sum(ss_net_profit) as total_sum ,s_state ,s_county @@ -71,7 +63,9 @@ select lochierarchy desc ,case when lochierarchy = 0 then s_state end ,rank_within_parent - limit 100; - - ''' + limit 100""" + qt_ds_shape_70 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query71.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query71.groovy index a812155dc662cf..89c808984a0fb6 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query71.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query71.groovy @@ -24,20 +24,12 @@ suite("query71") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_71 ''' - explain shape plan - - - - -select i_brand_id brand_id, i_brand brand,t_hour,t_minute, + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_brand_id brand_id, i_brand brand,t_hour,t_minute, sum(ext_price) ext_price from item, (select ws_ext_sales_price as ext_price, ws_sold_date_sk as sold_date_sk, @@ -73,7 +65,9 @@ select i_brand_id brand_id, i_brand brand,t_hour,t_minute, and (t_meal_time = 'breakfast' or t_meal_time = 'dinner') group by i_brand, i_brand_id,t_hour,t_minute order by ext_price desc, i_brand_id - ; - - ''' + """ + qt_ds_shape_71 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query72.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query72.groovy index 83087ec99ac384..32a06bb7a1978a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query72.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query72.groovy @@ -1,68 +1,62 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query72") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_72 ''' - explain shape plan - - - - -select i_item_desc - ,w_warehouse_name - ,d1.d_week_seq - ,sum(case when p_promo_sk is null then 1 else 0 end) no_promo - ,sum(case when p_promo_sk is not null then 1 else 0 end) promo - ,count(*) total_cnt -from catalog_sales -join inventory on (cs_item_sk = inv_item_sk) -join warehouse on (w_warehouse_sk=inv_warehouse_sk) -join item on (i_item_sk = cs_item_sk) -join customer_demographics on (cs_bill_cdemo_sk = cd_demo_sk) -join household_demographics on (cs_bill_hdemo_sk = hd_demo_sk) -join date_dim d1 on (cs_sold_date_sk = d1.d_date_sk) -join date_dim d2 on (inv_date_sk = d2.d_date_sk) -join date_dim d3 on (cs_ship_date_sk = d3.d_date_sk) -left outer join promotion on (cs_promo_sk=p_promo_sk) -left outer join catalog_returns on (cr_item_sk = cs_item_sk and cr_order_number = cs_order_number) -where d1.d_week_seq = d2.d_week_seq - and inv_quantity_on_hand < cs_quantity - and d3.d_date > d1.d_date + 5 - and hd_buy_potential = '501-1000' - and d1.d_year = 2002 - and cd_marital_status = 'W' -group by i_item_desc,w_warehouse_name,d1.d_week_seq -order by total_cnt desc, i_item_desc, w_warehouse_name, d_week_seq -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query72") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select /*+ SET_VAR(max_join_number_bushy_tree=10, memo_max_group_expression_size=15000)*/ i_item_desc + ,w_warehouse_name + ,d1.d_week_seq + ,sum(case when p_promo_sk is null then 1 else 0 end) no_promo + ,sum(case when p_promo_sk is not null then 1 else 0 end) promo + ,count(*) total_cnt +from catalog_sales +join inventory on (cs_item_sk = inv_item_sk) +join warehouse on (w_warehouse_sk=inv_warehouse_sk) +join item on (i_item_sk = cs_item_sk) +join customer_demographics on (cs_bill_cdemo_sk = cd_demo_sk) +join household_demographics on (cs_bill_hdemo_sk = hd_demo_sk) +join date_dim d1 on (cs_sold_date_sk = d1.d_date_sk) +join date_dim d2 on (inv_date_sk = d2.d_date_sk) +join date_dim d3 on (cs_ship_date_sk = d3.d_date_sk) +left outer join promotion on (cs_promo_sk=p_promo_sk) +left outer join catalog_returns on (cr_item_sk = cs_item_sk and cr_order_number = cs_order_number) +where d1.d_week_seq = d2.d_week_seq + and inv_quantity_on_hand < cs_quantity + and (d3.d_date > (d1.d_date + INTERVAL '5' DAY)) + and hd_buy_potential = '501-1000' + and d1.d_year = 2002 + and cd_marital_status = 'W' +group by i_item_desc,w_warehouse_name,d1.d_week_seq +order by total_cnt desc, i_item_desc, w_warehouse_name, d_week_seq +limit 100""" + qt_ds_shape_72 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query73.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query73.groovy index 75ef23a55349e3..bb9e9713220210 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query73.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query73.groovy @@ -1,67 +1,61 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query73") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_73 ''' - explain shape plan - - - - -select c_last_name - ,c_first_name - ,c_salutation - ,c_preferred_cust_flag - ,ss_ticket_number - ,cnt from - (select ss_ticket_number - ,ss_customer_sk - ,count(*) cnt - from store_sales,date_dim,store,household_demographics - where store_sales.ss_sold_date_sk = date_dim.d_date_sk - and store_sales.ss_store_sk = store.s_store_sk - and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk - and date_dim.d_dom between 1 and 2 - and (household_demographics.hd_buy_potential = '501-1000' or - household_demographics.hd_buy_potential = 'Unknown') - and household_demographics.hd_vehicle_count > 0 - and case when household_demographics.hd_vehicle_count > 0 then - household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count else null end > 1 - and date_dim.d_year in (2000,2000+1,2000+2) - and store.s_county in ('Fairfield County','Walker County','Daviess County','Barrow County') - group by ss_ticket_number,ss_customer_sk) dj,customer - where ss_customer_sk = c_customer_sk - and cnt between 1 and 5 - order by cnt desc, c_last_name asc; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query73") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select c_last_name + ,c_first_name + ,c_salutation + ,c_preferred_cust_flag + ,ss_ticket_number + ,cnt from + (select ss_ticket_number + ,ss_customer_sk + ,count(*) cnt + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and date_dim.d_dom between 1 and 2 + and (household_demographics.hd_buy_potential = '501-1000' or + household_demographics.hd_buy_potential = 'Unknown') + and household_demographics.hd_vehicle_count > 0 + and case when household_demographics.hd_vehicle_count > 0 then + household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count else null end > 1 + and date_dim.d_year in (2000,2000+1,2000+2) + and store.s_county in ('Fairfield County','Walker County','Daviess County','Barrow County') + group by ss_ticket_number,ss_customer_sk) dj,customer + where ss_customer_sk = c_customer_sk + and cnt between 1 and 5 + order by cnt desc, c_last_name asc""" + qt_ds_shape_73 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query74.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query74.groovy index a6ad5b48244943..f50ce2c490633e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query74.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query74.groovy @@ -24,19 +24,12 @@ suite("query74") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_74 ''' - explain shape plan - - - -with year_total as ( + sql 'set enable_runtime_filter_prune=false' + def ds = """with year_total as ( select c_customer_id customer_id ,c_first_name customer_first_name ,c_last_name customer_last_name @@ -93,7 +86,9 @@ with year_total as ( and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end order by 2,1,3 -limit 100; - - ''' +limit 100""" + qt_ds_shape_74 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query75.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query75.groovy index 0c3615a14745a8..d5888b884f2f2c 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query75.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query75.groovy @@ -24,20 +24,12 @@ suite("query75") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_75 ''' - explain shape plan - - - - -WITH all_sales AS ( + sql 'set enable_runtime_filter_prune=false' + def ds = """WITH all_sales AS ( SELECT d_year ,i_brand_id ,i_class_id @@ -103,7 +95,9 @@ WITH all_sales AS ( AND prev_yr.d_year=1999-1 AND CAST(curr_yr.sales_cnt AS DECIMAL(17,2))/CAST(prev_yr.sales_cnt AS DECIMAL(17,2))<0.9 ORDER BY sales_cnt_diff,sales_amt_diff - limit 100; - - ''' + limit 100""" + qt_ds_shape_75 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query76.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query76.groovy index 8fd698189f0c77..159a8f4b66fba9 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query76.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query76.groovy @@ -1,63 +1,57 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query76") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_76 ''' - explain shape plan - - - - -select channel, col_name, d_year, d_qoy, i_category, COUNT(*) sales_cnt, SUM(ext_sales_price) sales_amt FROM ( - SELECT 'store' as channel, 'ss_hdemo_sk' col_name, d_year, d_qoy, i_category, ss_ext_sales_price ext_sales_price - FROM store_sales, item, date_dim - WHERE ss_hdemo_sk IS NULL - AND ss_sold_date_sk=d_date_sk - AND ss_item_sk=i_item_sk - UNION ALL - SELECT 'web' as channel, 'ws_bill_addr_sk' col_name, d_year, d_qoy, i_category, ws_ext_sales_price ext_sales_price - FROM web_sales, item, date_dim - WHERE ws_bill_addr_sk IS NULL - AND ws_sold_date_sk=d_date_sk - AND ws_item_sk=i_item_sk - UNION ALL - SELECT 'catalog' as channel, 'cs_warehouse_sk' col_name, d_year, d_qoy, i_category, cs_ext_sales_price ext_sales_price - FROM catalog_sales, item, date_dim - WHERE cs_warehouse_sk IS NULL - AND cs_sold_date_sk=d_date_sk - AND cs_item_sk=i_item_sk) foo -GROUP BY channel, col_name, d_year, d_qoy, i_category -ORDER BY channel, col_name, d_year, d_qoy, i_category -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query76") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select channel, col_name, d_year, d_qoy, i_category, COUNT(*) sales_cnt, SUM(ext_sales_price) sales_amt FROM ( + SELECT 'store' as channel, 'ss_hdemo_sk' col_name, d_year, d_qoy, i_category, ss_ext_sales_price ext_sales_price + FROM store_sales, item, date_dim + WHERE ss_hdemo_sk IS NULL + AND ss_sold_date_sk=d_date_sk + AND ss_item_sk=i_item_sk + UNION ALL + SELECT 'web' as channel, 'ws_bill_addr_sk' col_name, d_year, d_qoy, i_category, ws_ext_sales_price ext_sales_price + FROM web_sales, item, date_dim + WHERE ws_bill_addr_sk IS NULL + AND ws_sold_date_sk=d_date_sk + AND ws_item_sk=i_item_sk + UNION ALL + SELECT 'catalog' as channel, 'cs_warehouse_sk' col_name, d_year, d_qoy, i_category, cs_ext_sales_price ext_sales_price + FROM catalog_sales, item, date_dim + WHERE cs_warehouse_sk IS NULL + AND cs_sold_date_sk=d_date_sk + AND cs_item_sk=i_item_sk) foo +GROUP BY channel, col_name, d_year, d_qoy, i_category +ORDER BY channel, col_name, d_year, d_qoy, i_category +limit 100""" + qt_ds_shape_76 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query77.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query77.groovy index c00d5f4af33eed..a20c592be39fab 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query77.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query77.groovy @@ -24,20 +24,12 @@ suite("query77") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_77 ''' - explain shape plan - - - - -with ss as + sql 'set enable_runtime_filter_prune=false' + def ds = """with ss as (select s_store_sk, sum(ss_ext_sales_price) as sales, sum(ss_net_profit) as profit @@ -141,7 +133,9 @@ with ss as group by rollup (channel, id) order by channel ,id - limit 100; - - ''' + limit 100""" + qt_ds_shape_77 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query78.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query78.groovy index 4d72e4e0b028fb..9b22171226758c 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query78.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query78.groovy @@ -24,20 +24,12 @@ suite("query78") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_78 ''' - explain shape plan - - - - -with ws as + sql 'set enable_runtime_filter_prune=false' + def ds = """with ws as (select d_year AS ws_sold_year, ws_item_sk, ws_bill_customer_sk ws_customer_sk, sum(ws_quantity) ws_qty, @@ -91,7 +83,9 @@ order by other_chan_wholesale_cost, other_chan_sales_price, ratio -limit 100; - - ''' +limit 100""" + qt_ds_shape_78 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query79.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query79.groovy index 00a8be07ae3a70..abe3635808da74 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query79.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query79.groovy @@ -1,62 +1,56 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query79") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_79 ''' - explain shape plan - - - - -select - c_last_name,c_first_name,substr(s_city,1,30),ss_ticket_number,amt,profit - from - (select ss_ticket_number - ,ss_customer_sk - ,store.s_city - ,sum(ss_coupon_amt) amt - ,sum(ss_net_profit) profit - from store_sales,date_dim,store,household_demographics - where store_sales.ss_sold_date_sk = date_dim.d_date_sk - and store_sales.ss_store_sk = store.s_store_sk - and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk - and (household_demographics.hd_dep_count = 5 or household_demographics.hd_vehicle_count > 4) - and date_dim.d_dow = 1 - and date_dim.d_year in (1998,1998+1,1998+2) - and store.s_number_employees between 200 and 295 - group by ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city) ms,customer - where ss_customer_sk = c_customer_sk - order by c_last_name,c_first_name,substr(s_city,1,30), profit -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query79") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select + c_last_name,c_first_name,substr(s_city,1,30),ss_ticket_number,amt,profit + from + (select ss_ticket_number + ,ss_customer_sk + ,store.s_city + ,sum(ss_coupon_amt) amt + ,sum(ss_net_profit) profit + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and (household_demographics.hd_dep_count = 5 or household_demographics.hd_vehicle_count > 4) + and date_dim.d_dow = 1 + and date_dim.d_year in (1998,1998+1,1998+2) + and store.s_number_employees between 200 and 295 + group by ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city) ms,customer + where ss_customer_sk = c_customer_sk + order by c_last_name,c_first_name,substr(s_city,1,30), profit +limit 100""" + qt_ds_shape_79 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query8.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query8.groovy index 5f1f6de88e9911..0f407b2543a6a7 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query8.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query8.groovy @@ -24,20 +24,12 @@ suite("query8") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_8 ''' - explain shape plan - - - - -select s_store_name + sql 'set enable_runtime_filter_prune=false' + def ds = """select s_store_name ,sum(ss_net_profit) from store_sales ,date_dim @@ -141,7 +133,9 @@ select s_store_name and (substr(s_zip,1,2) = substr(V1.ca_zip,1,2)) group by s_store_name order by s_store_name - limit 100; - - ''' + limit 100""" + qt_ds_shape_8 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query80.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query80.groovy index 3db229574bcd2c..5a71cc054eb052 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query80.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query80.groovy @@ -24,20 +24,12 @@ suite("query80") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_80 ''' - explain shape plan - - - - -with ssr as + sql 'set enable_runtime_filter_prune=false' + def ds = """with ssr as (select s_store_id as store_id, sum(ss_ext_sales_price) as sales, sum(coalesce(sr_return_amt, 0)) as returns, @@ -129,7 +121,9 @@ group by web_site_id) group by rollup (channel, id) order by channel ,id - limit 100; - - ''' + limit 100""" + qt_ds_shape_80 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query81.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query81.groovy index 8f688ce8a5b8b4..ef9075908799d4 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query81.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query81.groovy @@ -1,70 +1,64 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query81") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_81 ''' - explain shape plan - - - - -with customer_total_return as - (select cr_returning_customer_sk as ctr_customer_sk - ,ca_state as ctr_state, - sum(cr_return_amt_inc_tax) as ctr_total_return - from catalog_returns - ,date_dim - ,customer_address - where cr_returned_date_sk = d_date_sk - and d_year =2002 - and cr_returning_addr_sk = ca_address_sk - group by cr_returning_customer_sk - ,ca_state ) - select c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name - ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset - ,ca_location_type,ctr_total_return - from customer_total_return ctr1 - ,customer_address - ,customer - where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 - from customer_total_return ctr2 - where ctr1.ctr_state = ctr2.ctr_state) - and ca_address_sk = c_current_addr_sk - and ca_state = 'CA' - and ctr1.ctr_customer_sk = c_customer_sk - order by c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name - ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset - ,ca_location_type,ctr_total_return - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query81") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """with customer_total_return as + (select cr_returning_customer_sk as ctr_customer_sk + ,ca_state as ctr_state, + sum(cr_return_amt_inc_tax) as ctr_total_return + from catalog_returns + ,date_dim + ,customer_address + where cr_returned_date_sk = d_date_sk + and d_year =2002 + and cr_returning_addr_sk = ca_address_sk + group by cr_returning_customer_sk + ,ca_state ) + select c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name + ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset + ,ca_location_type,ctr_total_return + from customer_total_return ctr1 + ,customer_address + ,customer + where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 + from customer_total_return ctr2 + where ctr1.ctr_state = ctr2.ctr_state) + and ca_address_sk = c_current_addr_sk + and ca_state = 'CA' + and ctr1.ctr_customer_sk = c_customer_sk + order by c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name + ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset + ,ca_location_type,ctr_total_return + limit 100""" + qt_ds_shape_81 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query82.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query82.groovy index eb7f22b620c4b4..b4d625bf2fa342 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query82.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query82.groovy @@ -1,56 +1,50 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query82") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_82 ''' - explain shape plan - - - - -select i_item_id - ,i_item_desc - ,i_current_price - from item, inventory, date_dim, store_sales - where i_current_price between 17 and 17+30 - and inv_item_sk = i_item_sk - and d_date_sk=inv_date_sk - and d_date between cast('1999-07-09' as date) and (cast('1999-07-09' as date) + interval 60 day) - and i_manufact_id in (639,169,138,339) - and inv_quantity_on_hand between 100 and 500 - and ss_item_sk = i_item_sk - group by i_item_id,i_item_desc,i_current_price - order by i_item_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query82") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id + ,i_item_desc + ,i_current_price + from item, inventory, date_dim, store_sales + where i_current_price between 17 and 17+30 + and inv_item_sk = i_item_sk + and d_date_sk=inv_date_sk + and d_date between cast('1999-07-09' as date) and (cast('1999-07-09' as date) + interval 60 day) + and i_manufact_id in (639,169,138,339) + and inv_quantity_on_hand between 100 and 500 + and ss_item_sk = i_item_sk + group by i_item_id,i_item_desc,i_current_price + order by i_item_id + limit 100""" + qt_ds_shape_82 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query83.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query83.groovy index 62f1e5da815c03..3fb6dfe5464ecf 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query83.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query83.groovy @@ -24,20 +24,12 @@ suite("query83") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_83 ''' - explain shape plan - - - - -with sr_items as + sql 'set enable_runtime_filter_prune=false' + def ds = """with sr_items as (select i_item_id item_id, sum(sr_return_quantity) sr_item_qty from store_returns, @@ -100,7 +92,9 @@ with sr_items as and sr_items.item_id=wr_items.item_id order by sr_items.item_id ,sr_item_qty - limit 100; - - ''' + limit 100""" + qt_ds_shape_83 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query84.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query84.groovy index ced9441f479aa0..e590f54cdbdeec 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query84.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query84.groovy @@ -1,60 +1,54 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query84") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_84 ''' - explain shape plan - - - - -select c_customer_id as customer_id - , concat(concat(coalesce(c_last_name,''), ','), coalesce(c_first_name,'')) as customername - from customer - ,customer_address - ,customer_demographics - ,household_demographics - ,income_band - ,store_returns - where ca_city = 'Oakwood' - and c_current_addr_sk = ca_address_sk - and ib_lower_bound >= 5806 - and ib_upper_bound <= 5806 + 50000 - and ib_income_band_sk = hd_income_band_sk - and cd_demo_sk = c_current_cdemo_sk - and hd_demo_sk = c_current_hdemo_sk - and sr_cdemo_sk = cd_demo_sk - order by c_customer_id - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query84") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select c_customer_id as customer_id + , concat(concat(coalesce(c_last_name,''), ','), coalesce(c_first_name,'')) as customername + from customer + ,customer_address + ,customer_demographics + ,household_demographics + ,income_band + ,store_returns + where ca_city = 'Oakwood' + and c_current_addr_sk = ca_address_sk + and ib_lower_bound >= 5806 + and ib_upper_bound <= 5806 + 50000 + and ib_income_band_sk = hd_income_band_sk + and cd_demo_sk = c_current_cdemo_sk + and hd_demo_sk = c_current_hdemo_sk + and sr_cdemo_sk = cd_demo_sk + order by c_customer_id + limit 100""" + qt_ds_shape_84 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query85.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query85.groovy index 967dcde9010a3e..8702e29057e381 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query85.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query85.groovy @@ -24,20 +24,12 @@ suite("query85") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_85 ''' - explain shape plan - - - - -select substr(r_reason_desc,1,20) + sql 'set enable_runtime_filter_prune=false' + def ds = """select substr(r_reason_desc,1,20) ,avg(ws_quantity) ,avg(wr_refunded_cash) ,avg(wr_fee) @@ -117,7 +109,9 @@ order by substr(r_reason_desc,1,20) ,avg(ws_quantity) ,avg(wr_refunded_cash) ,avg(wr_fee) -limit 100; - - ''' +limit 100""" + qt_ds_shape_85 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query86.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query86.groovy index 1728f272747622..b017562447820f 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query86.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query86.groovy @@ -1,65 +1,59 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query86") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_86 ''' - explain shape plan - - - - -select - sum(ws_net_paid) as total_sum - ,i_category - ,i_class - ,grouping(i_category)+grouping(i_class) as lochierarchy - ,rank() over ( - partition by grouping(i_category)+grouping(i_class), - case when grouping(i_class) = 0 then i_category end - order by sum(ws_net_paid) desc) as rank_within_parent - from - web_sales - ,date_dim d1 - ,item - where - d1.d_month_seq between 1224 and 1224+11 - and d1.d_date_sk = ws_sold_date_sk - and i_item_sk = ws_item_sk - group by rollup(i_category,i_class) - order by - lochierarchy desc, - case when lochierarchy = 0 then i_category end, - rank_within_parent - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query86") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select + sum(ws_net_paid) as total_sum + ,i_category + ,i_class + ,grouping(i_category)+grouping(i_class) as lochierarchy + ,rank() over ( + partition by grouping(i_category)+grouping(i_class), + case when grouping(i_class) = 0 then i_category end + order by sum(ws_net_paid) desc) as rank_within_parent + from + web_sales + ,date_dim d1 + ,item + where + d1.d_month_seq between 1224 and 1224+11 + and d1.d_date_sk = ws_sold_date_sk + and i_item_sk = ws_item_sk + group by rollup(i_category,i_class) + order by + lochierarchy desc, + case when lochierarchy = 0 then i_category end, + rank_within_parent + limit 100""" + qt_ds_shape_86 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query87.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query87.groovy index 3f9d166d5f5691..8c545dbdfe8d6e 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query87.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query87.groovy @@ -1,62 +1,56 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query87") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_87 ''' - explain shape plan - - - - -select count(*) -from ((select distinct c_last_name, c_first_name, d_date - from store_sales, date_dim, customer - where store_sales.ss_sold_date_sk = date_dim.d_date_sk - and store_sales.ss_customer_sk = customer.c_customer_sk - and d_month_seq between 1184 and 1184+11) - except - (select distinct c_last_name, c_first_name, d_date - from catalog_sales, date_dim, customer - where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk - and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk - and d_month_seq between 1184 and 1184+11) - except - (select distinct c_last_name, c_first_name, d_date - from web_sales, date_dim, customer - where web_sales.ws_sold_date_sk = date_dim.d_date_sk - and web_sales.ws_bill_customer_sk = customer.c_customer_sk - and d_month_seq between 1184 and 1184+11) -) cool_cust -; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query87") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select count(*) +from ((select distinct c_last_name, c_first_name, d_date + from store_sales, date_dim, customer + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_customer_sk = customer.c_customer_sk + and d_month_seq between 1184 and 1184+11) + except + (select distinct c_last_name, c_first_name, d_date + from catalog_sales, date_dim, customer + where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk + and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1184 and 1184+11) + except + (select distinct c_last_name, c_first_name, d_date + from web_sales, date_dim, customer + where web_sales.ws_sold_date_sk = date_dim.d_date_sk + and web_sales.ws_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1184 and 1184+11) +) cool_cust +""" + qt_ds_shape_87 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query88.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query88.groovy index 6be244c464743d..88993dc094bad0 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query88.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query88.groovy @@ -24,20 +24,12 @@ suite("query88") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_88 ''' - explain shape plan - - - - -select * + sql 'set enable_runtime_filter_prune=false' + def ds = """select * from (select count(*) h8_30_to_9 from store_sales, household_demographics , time_dim, store @@ -127,7 +119,9 @@ from (household_demographics.hd_dep_count = 4 and household_demographics.hd_vehicle_count<=4+2) or (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) and store.s_store_name = 'ese') s8 -; - - ''' +""" + qt_ds_shape_88 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query89.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query89.groovy index e4ca97b35d0ff5..28371cd390cd73 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query89.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query89.groovy @@ -1,67 +1,61 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query89") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_89 ''' - explain shape plan - - - - -select * -from( -select i_category, i_class, i_brand, - s_store_name, s_company_name, - d_moy, - sum(ss_sales_price) sum_sales, - avg(sum(ss_sales_price)) over - (partition by i_category, i_brand, s_store_name, s_company_name) - avg_monthly_sales -from item, store_sales, date_dim, store -where ss_item_sk = i_item_sk and - ss_sold_date_sk = d_date_sk and - ss_store_sk = s_store_sk and - d_year in (1999) and - ((i_category in ('Jewelry','Shoes','Electronics') and - i_class in ('semi-precious','athletic','portable') - ) - or (i_category in ('Men','Music','Women') and - i_class in ('accessories','rock','maternity') - )) -group by i_category, i_class, i_brand, - s_store_name, s_company_name, d_moy) tmp1 -where case when (avg_monthly_sales <> 0) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null end > 0.1 -order by sum_sales - avg_monthly_sales, s_store_name -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query89") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select * +from( +select i_category, i_class, i_brand, + s_store_name, s_company_name, + d_moy, + sum(ss_sales_price) sum_sales, + avg(sum(ss_sales_price)) over + (partition by i_category, i_brand, s_store_name, s_company_name) + avg_monthly_sales +from item, store_sales, date_dim, store +where ss_item_sk = i_item_sk and + ss_sold_date_sk = d_date_sk and + ss_store_sk = s_store_sk and + d_year in (1999) and + ((i_category in ('Jewelry','Shoes','Electronics') and + i_class in ('semi-precious','athletic','portable') + ) + or (i_category in ('Men','Music','Women') and + i_class in ('accessories','rock','maternity') + )) +group by i_category, i_class, i_brand, + s_store_name, s_company_name, d_moy) tmp1 +where case when (avg_monthly_sales <> 0) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null end > 0.1 +order by sum_sales - avg_monthly_sales, s_store_name +limit 100""" + qt_ds_shape_89 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query9.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query9.groovy index 8554e02a7a03a9..68e1348fad16d1 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query9.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query9.groovy @@ -24,20 +24,12 @@ suite("query9") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_9 ''' - explain shape plan - - - - -select case when (select count(*) + sql 'set enable_runtime_filter_prune=false' + def ds = """select case when (select count(*) from store_sales where ss_quantity between 1 and 20) > 2972190 then (select avg(ss_ext_sales_price) @@ -84,7 +76,9 @@ select case when (select count(*) where ss_quantity between 81 and 100) end bucket5 from reason where r_reason_sk = 1 -; - - ''' +""" + qt_ds_shape_9 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query90.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query90.groovy index bcd4cb3afb80bd..3af81c2374b1ae 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query90.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query90.groovy @@ -1,61 +1,55 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query90") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_90 ''' - explain shape plan - - - - -select cast(amc as decimal(15,4))/cast(pmc as decimal(15,4)) am_pm_ratio - from ( select count(*) amc - from web_sales, household_demographics , time_dim, web_page - where ws_sold_time_sk = time_dim.t_time_sk - and ws_ship_hdemo_sk = household_demographics.hd_demo_sk - and ws_web_page_sk = web_page.wp_web_page_sk - and time_dim.t_hour between 10 and 10+1 - and household_demographics.hd_dep_count = 2 - and web_page.wp_char_count between 5000 and 5200) at, - ( select count(*) pmc - from web_sales, household_demographics , time_dim, web_page - where ws_sold_time_sk = time_dim.t_time_sk - and ws_ship_hdemo_sk = household_demographics.hd_demo_sk - and ws_web_page_sk = web_page.wp_web_page_sk - and time_dim.t_hour between 16 and 16+1 - and household_demographics.hd_dep_count = 2 - and web_page.wp_char_count between 5000 and 5200) pt - order by am_pm_ratio - limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query90") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select cast(amc as decimal(15,4))/cast(pmc as decimal(15,4)) am_pm_ratio + from ( select count(*) amc + from web_sales, household_demographics , time_dim, web_page + where ws_sold_time_sk = time_dim.t_time_sk + and ws_ship_hdemo_sk = household_demographics.hd_demo_sk + and ws_web_page_sk = web_page.wp_web_page_sk + and time_dim.t_hour between 10 and 10+1 + and household_demographics.hd_dep_count = 2 + and web_page.wp_char_count between 5000 and 5200) at, + ( select count(*) pmc + from web_sales, household_demographics , time_dim, web_page + where ws_sold_time_sk = time_dim.t_time_sk + and ws_ship_hdemo_sk = household_demographics.hd_demo_sk + and ws_web_page_sk = web_page.wp_web_page_sk + and time_dim.t_hour between 16 and 16+1 + and household_demographics.hd_dep_count = 2 + and web_page.wp_char_count between 5000 and 5200) pt + order by am_pm_ratio + limit 100""" + qt_ds_shape_90 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query91.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query91.groovy index 17e0b6766a5e1b..44961f051f8643 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query91.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query91.groovy @@ -1,70 +1,64 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query91") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_91 ''' - explain shape plan - - - - -select - cc_call_center_id Call_Center, - cc_name Call_Center_Name, - cc_manager Manager, - sum(cr_net_loss) Returns_Loss -from - call_center, - catalog_returns, - date_dim, - customer, - customer_address, - customer_demographics, - household_demographics -where - cr_call_center_sk = cc_call_center_sk -and cr_returned_date_sk = d_date_sk -and cr_returning_customer_sk= c_customer_sk -and cd_demo_sk = c_current_cdemo_sk -and hd_demo_sk = c_current_hdemo_sk -and ca_address_sk = c_current_addr_sk -and d_year = 2001 -and d_moy = 11 -and ( (cd_marital_status = 'M' and cd_education_status = 'Unknown') - or(cd_marital_status = 'W' and cd_education_status = 'Advanced Degree')) -and hd_buy_potential like '1001-5000%' -and ca_gmt_offset = -6 -group by cc_call_center_id,cc_name,cc_manager,cd_marital_status,cd_education_status -order by sum(cr_net_loss) desc; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query91") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select + cc_call_center_id Call_Center, + cc_name Call_Center_Name, + cc_manager Manager, + sum(cr_net_loss) Returns_Loss +from + call_center, + catalog_returns, + date_dim, + customer, + customer_address, + customer_demographics, + household_demographics +where + cr_call_center_sk = cc_call_center_sk +and cr_returned_date_sk = d_date_sk +and cr_returning_customer_sk= c_customer_sk +and cd_demo_sk = c_current_cdemo_sk +and hd_demo_sk = c_current_hdemo_sk +and ca_address_sk = c_current_addr_sk +and d_year = 2001 +and d_moy = 11 +and ( (cd_marital_status = 'M' and cd_education_status = 'Unknown') + or(cd_marital_status = 'W' and cd_education_status = 'Advanced Degree')) +and hd_buy_potential like '1001-5000%' +and ca_gmt_offset = -6 +group by cc_call_center_id,cc_name,cc_manager,cd_marital_status,cd_education_status +order by sum(cr_net_loss) desc""" + qt_ds_shape_91 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query92.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query92.groovy index 368452c4ed1445..a66ff2a668269d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query92.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query92.groovy @@ -1,69 +1,63 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query92") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_92 ''' - explain shape plan - - - - -select - sum(ws_ext_discount_amt) as "Excess Discount Amount" -from - web_sales - ,item - ,date_dim -where -i_manufact_id = 320 -and i_item_sk = ws_item_sk -and d_date between '2002-02-26' and - (cast('2002-02-26' as date) + interval 90 day) -and d_date_sk = ws_sold_date_sk -and ws_ext_discount_amt - > ( - SELECT - 1.3 * avg(ws_ext_discount_amt) - FROM - web_sales - ,date_dim - WHERE - ws_item_sk = i_item_sk - and d_date between '2002-02-26' and - (cast('2002-02-26' as date) + interval 90 day) - and d_date_sk = ws_sold_date_sk - ) -order by sum(ws_ext_discount_amt) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query92") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select + sum(ws_ext_discount_amt) as "Excess Discount Amount" +from + web_sales + ,item + ,date_dim +where +i_manufact_id = 320 +and i_item_sk = ws_item_sk +and d_date between '2002-02-26' and + (cast('2002-02-26' as date) + interval 90 day) +and d_date_sk = ws_sold_date_sk +and ws_ext_discount_amt + > ( + SELECT + 1.3 * avg(ws_ext_discount_amt) + FROM + web_sales + ,date_dim + WHERE + ws_item_sk = i_item_sk + and d_date between '2002-02-26' and + (cast('2002-02-26' as date) + interval 90 day) + and d_date_sk = ws_sold_date_sk + ) +order by sum(ws_ext_discount_amt) +limit 100""" + qt_ds_shape_92 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query93.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query93.groovy index 516d4e2e048313..620ef7c9877c27 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query93.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query93.groovy @@ -1,57 +1,51 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query93") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_93 ''' - explain shape plan - - - - -select ss_customer_sk - ,sum(act_sales) sumsales - from (select ss_item_sk - ,ss_ticket_number - ,ss_customer_sk - ,case when sr_return_quantity is not null then (ss_quantity-sr_return_quantity)*ss_sales_price - else (ss_quantity*ss_sales_price) end act_sales - from store_sales left outer join store_returns on (sr_item_sk = ss_item_sk - and sr_ticket_number = ss_ticket_number) - ,reason - where sr_reason_sk = r_reason_sk - and r_reason_desc = 'duplicate purchase') t - group by ss_customer_sk - order by sumsales, ss_customer_sk -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query93") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select ss_customer_sk + ,sum(act_sales) sumsales + from (select ss_item_sk + ,ss_ticket_number + ,ss_customer_sk + ,case when sr_return_quantity is not null then (ss_quantity-sr_return_quantity)*ss_sales_price + else (ss_quantity*ss_sales_price) end act_sales + from store_sales left outer join store_returns on (sr_item_sk = ss_item_sk + and sr_ticket_number = ss_ticket_number) + ,reason + where sr_reason_sk = r_reason_sk + and r_reason_desc = 'duplicate purchase') t + group by ss_customer_sk + order by sumsales, ss_customer_sk +limit 100""" + qt_ds_shape_93 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query94.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query94.groovy index f9315834828a15..be1536e816f406 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query94.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query94.groovy @@ -1,68 +1,62 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query94") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_94 ''' - explain shape plan - - - - -select - count(distinct ws_order_number) as "order count" - ,sum(ws_ext_ship_cost) as "total shipping cost" - ,sum(ws_net_profit) as "total net profit" -from - web_sales ws1 - ,date_dim - ,customer_address - ,web_site -where - d_date between '2000-2-01' and - (cast('2000-2-01' as date) + interval 60 day) -and ws1.ws_ship_date_sk = d_date_sk -and ws1.ws_ship_addr_sk = ca_address_sk -and ca_state = 'OK' -and ws1.ws_web_site_sk = web_site_sk -and web_company_name = 'pri' -and exists (select * - from web_sales ws2 - where ws1.ws_order_number = ws2.ws_order_number - and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) -and not exists(select * - from web_returns wr1 - where ws1.ws_order_number = wr1.wr_order_number) -order by count(distinct ws_order_number) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query94") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select + count(distinct ws_order_number) as "order count" + ,sum(ws_ext_ship_cost) as "total shipping cost" + ,sum(ws_net_profit) as "total net profit" +from + web_sales ws1 + ,date_dim + ,customer_address + ,web_site +where + d_date between '2000-2-01' and + (cast('2000-2-01' as date) + interval 60 day) +and ws1.ws_ship_date_sk = d_date_sk +and ws1.ws_ship_addr_sk = ca_address_sk +and ca_state = 'OK' +and ws1.ws_web_site_sk = web_site_sk +and web_company_name = 'pri' +and exists (select * + from web_sales ws2 + where ws1.ws_order_number = ws2.ws_order_number + and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) +and not exists(select * + from web_returns wr1 + where ws1.ws_order_number = wr1.wr_order_number) +order by count(distinct ws_order_number) +limit 100""" + qt_ds_shape_94 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query95.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query95.groovy index 912ce1bb02a6d7..2c2274e602db6f 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query95.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query95.groovy @@ -1,69 +1,65 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query95") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_95 ''' - explain shape plan - - -with ws_wh as -(select ws1.ws_order_number,ws1.ws_warehouse_sk wh1,ws2.ws_warehouse_sk wh2 - from web_sales ws1,web_sales ws2 - where ws1.ws_order_number = ws2.ws_order_number - and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) - select - count(distinct ws_order_number) as "order count" - ,sum(ws_ext_ship_cost) as "total shipping cost" - ,sum(ws_net_profit) as "total net profit" -from - web_sales ws1 - ,date_dim - ,customer_address - ,web_site -where - d_date between '1999-2-01' and - (cast('1999-2-01' as date) + interval 60 day) -and ws1.ws_ship_date_sk = d_date_sk -and ws1.ws_ship_addr_sk = ca_address_sk -and ca_state = 'NC' -and ws1.ws_web_site_sk = web_site_sk -and web_company_name = 'pri' -and ws1.ws_order_number in (select ws_order_number - from ws_wh) -and ws1.ws_order_number in (select wr_order_number - from web_returns,ws_wh - where wr_order_number = ws_wh.ws_order_number) -order by count(distinct ws_order_number) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query95") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """with ws_wh as +(select ws1.ws_order_number,ws1.ws_warehouse_sk wh1,ws2.ws_warehouse_sk wh2 + from web_sales ws1,web_sales ws2 + where ws1.ws_order_number = ws2.ws_order_number + and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) + select + count(distinct ws_order_number) as "order count" + ,sum(ws_ext_ship_cost) as "total shipping cost" + ,sum(ws_net_profit) as "total net profit" +from + web_sales ws1 + ,date_dim + ,customer_address + ,web_site +where + d_date between '1999-2-01' and + (cast('1999-2-01' as date) + interval 60 day) +and ws1.ws_ship_date_sk = d_date_sk +and ws1.ws_ship_addr_sk = ca_address_sk +and ca_state = 'NC' +and ws1.ws_web_site_sk = web_site_sk +and web_company_name = 'pri' +and ws1.ws_order_number in (select ws_order_number + from ws_wh) +and ws1.ws_order_number in (select wr_order_number + from web_returns,ws_wh + where wr_order_number = ws_wh.ws_order_number) +order by count(distinct ws_order_number) +limit 100""" + qt_ds_shape_95 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query96.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query96.groovy index 4ceec16552d6f6..bd12c22b9ac77a 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query96.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query96.groovy @@ -1,55 +1,49 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query96") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_96 ''' - explain shape plan - - - - -select count(*) -from store_sales - ,household_demographics - ,time_dim, store -where ss_sold_time_sk = time_dim.t_time_sk - and ss_hdemo_sk = household_demographics.hd_demo_sk - and ss_store_sk = s_store_sk - and time_dim.t_hour = 8 - and time_dim.t_minute >= 30 - and household_demographics.hd_dep_count = 3 - and store.s_store_name = 'ese' -order by count(*) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query96") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """select count(*) +from store_sales + ,household_demographics + ,time_dim, store +where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 8 + and time_dim.t_minute >= 30 + and household_demographics.hd_dep_count = 3 + and store.s_store_name = 'ese' +order by count(*) +limit 100""" + qt_ds_shape_96 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query97.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query97.groovy index 940bfe1ad91eb5..287fff8979e8b1 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query97.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query97.groovy @@ -1,64 +1,58 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("query97") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_97 ''' - explain shape plan - - - - -with ssci as ( -select ss_customer_sk customer_sk - ,ss_item_sk item_sk -from store_sales,date_dim -where ss_sold_date_sk = d_date_sk - and d_month_seq between 1214 and 1214 + 11 -group by ss_customer_sk - ,ss_item_sk), -csci as( - select cs_bill_customer_sk customer_sk - ,cs_item_sk item_sk -from catalog_sales,date_dim -where cs_sold_date_sk = d_date_sk - and d_month_seq between 1214 and 1214 + 11 -group by cs_bill_customer_sk - ,cs_item_sk) - select sum(case when ssci.customer_sk is not null and csci.customer_sk is null then 1 else 0 end) store_only - ,sum(case when ssci.customer_sk is null and csci.customer_sk is not null then 1 else 0 end) catalog_only - ,sum(case when ssci.customer_sk is not null and csci.customer_sk is not null then 1 else 0 end) store_and_catalog -from ssci full outer join csci on (ssci.customer_sk=csci.customer_sk - and ssci.item_sk = csci.item_sk) -limit 100; - - ''' -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +suite("query97") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql 'set exec_mem_limit=21G' + sql 'set be_number_for_test=3' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' + sql 'set forbid_unknown_col_stats=true' + sql 'set enable_nereids_timeout = false' + sql 'set enable_runtime_filter_prune=false' + def ds = """with ssci as ( +select ss_customer_sk customer_sk + ,ss_item_sk item_sk +from store_sales,date_dim +where ss_sold_date_sk = d_date_sk + and d_month_seq between 1214 and 1214 + 11 +group by ss_customer_sk + ,ss_item_sk), +csci as( + select cs_bill_customer_sk customer_sk + ,cs_item_sk item_sk +from catalog_sales,date_dim +where cs_sold_date_sk = d_date_sk + and d_month_seq between 1214 and 1214 + 11 +group by cs_bill_customer_sk + ,cs_item_sk) + select sum(case when ssci.customer_sk is not null and csci.customer_sk is null then 1 else 0 end) store_only + ,sum(case when ssci.customer_sk is null and csci.customer_sk is not null then 1 else 0 end) catalog_only + ,sum(case when ssci.customer_sk is not null and csci.customer_sk is not null then 1 else 0 end) store_and_catalog +from ssci full outer join csci on (ssci.customer_sk=csci.customer_sk + and ssci.item_sk = csci.item_sk) +limit 100""" + qt_ds_shape_97 """ + explain shape plan + ${ds} + """ +} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query98.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query98.groovy index dbef92f6d8bbe7..c5f52bdef3ff8f 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query98.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query98.groovy @@ -24,20 +24,12 @@ suite("query98") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_98 ''' - explain shape plan - - - - -select i_item_id + sql 'set enable_runtime_filter_prune=false' + def ds = """select i_item_id ,i_item_desc ,i_category ,i_class @@ -66,7 +58,9 @@ order by ,i_class ,i_item_id ,i_item_desc - ,revenueratio; - - ''' + ,revenueratio""" + qt_ds_shape_98 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query99.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query99.groovy index 2f89d7bdf61e42..19f1f570d805c4 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query99.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/query99.groovy @@ -24,20 +24,12 @@ suite("query99") { sql 'set enable_fallback_to_original_planner=false' sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=3' -sql 'set enable_runtime_filter_prune=false' - sql 'set parallel_pipeline_task_num=8' + sql 'set parallel_fragment_exec_instance_num=8; ' + sql 'set parallel_pipeline_task_num=8; ' sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' sql 'set enable_nereids_timeout = false' - sql 'SET enable_pipeline_engine = true' - - qt_ds_shape_99 ''' - explain shape plan - - - - -select + sql 'set enable_runtime_filter_prune=false' + def ds = """select substr(w_warehouse_name,1,20) ,sm_type ,cc_name @@ -68,7 +60,9 @@ group by order by substr(w_warehouse_name,1,20) ,sm_type ,cc_name -limit 100; - - ''' +limit 100""" + qt_ds_shape_99 """ + explain shape plan + ${ds} + """ } diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/tpcds_sf100_stats.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/tpcds_sf100_stats.groovy new file mode 100644 index 00000000000000..35502b910164c6 --- /dev/null +++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/tpcds_sf100_stats.groovy @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +suite('tpcds_sf100_stats') { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + sql "use ${db}" + def stats + stats = sql """ show column stats call_center ;""" + logger.info("${stats}") + stats = sql """ show column stats catalog_page ;""" + logger.info("${stats}") + stats = sql """ show column stats catalog_returns ;""" + logger.info("${stats}") + stats = sql """ show column stats catalog_sales ;""" + logger.info("${stats}") + stats = sql """ show column stats customer ;""" + logger.info("${stats}") + stats = sql """ show column stats customer_address ;""" + logger.info("${stats}") + stats = sql """ show column stats customer_demographics ;""" + logger.info("${stats}") + stats = sql """ show column stats date_dim ;""" + logger.info("${stats}") + stats = sql """ show column stats dbgen_version ;""" + logger.info("${stats}") + stats = sql """ show column stats household_demographics ;""" + logger.info("${stats}") + stats = sql """ show column stats income_band ;""" + logger.info("${stats}") + stats = sql """ show column stats inventory ;""" + logger.info("${stats}") + stats = sql """ show column stats item ;""" + logger.info("${stats}") + stats = sql """ show column stats promotion ;""" + logger.info("${stats}") + stats = sql """ show column stats reason ;""" + logger.info("${stats}") + stats = sql """ show column stats ship_mode ;""" + logger.info("${stats}") + stats = sql """ show column stats store ;""" + logger.info("${stats}") + stats = sql """ show column stats store_returns ;""" + logger.info("${stats}") + stats = sql """ show column stats store_sales ;""" + logger.info("${stats}") + stats = sql """ show column stats time_dim ;""" + logger.info("${stats}") + stats = sql """ show column stats warehouse ;""" + logger.info("${stats}") + stats = sql """ show column stats web_page ;""" + logger.info("${stats}") + stats = sql """ show column stats web_returns ;""" + logger.info("${stats}") + stats = sql """ show column stats web_sales ;""" + logger.info("${stats}") + stats = sql """ show column stats web_site ;""" + logger.info("${stats}") + +} \ No newline at end of file diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/ddl/gen_rf.py b/regression-test/suites/nereids_tpch_shape_sf1000_p0/ddl/gen_rf.py deleted file mode 100644 index 4d9ff10944c73e..00000000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/ddl/gen_rf.py +++ /dev/null @@ -1,29 +0,0 @@ -# // Licensed to the Apache Software Foundation (ASF) under one -# // or more contributor license agreements. See the NOTICE file -# // distributed with this work for additional information -# // regarding copyright ownership. The ASF licenses this file -# // to you under the Apache License, Version 2.0 (the -# // "License"); you may not use this file except in compliance -# // with the License. You may obtain a copy of the License at -# // -# // http://www.apache.org/licenses/LICENSE-2.0 -# // -# // Unless required by applicable law or agreed to in writing, -# // software distributed under the License is distributed on an -# // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# // KIND, either express or implied. See the License for the -# // specific language governing permissions and limitations -# // under the License. -if __name__ == '__main__': - with open('rf.tmpl', 'r') as f: - tmpl = f.read() - for i in range(1,23): - with open('../../../../tools/tpch-tools/queries/q'+str(i)+'.sql', 'r') as fi: - casei = tmpl.replace('{--}', str(i)) - casei = casei.replace('{query}', fi.read()) - # with open('../rf/h_rf'+str(i)+'.groovy', 'w') as out: - # out.write(casei) - with open('rf/rf.'+str(i), 'r') as rf_file: - casei = casei.replace('{rfs}', rf_file.read()) - with open('../rf/h_rf'+str(i)+'.groovy', 'w') as out: - out.write(casei) \ No newline at end of file diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/ddl/rf.tmpl b/regression-test/suites/nereids_tpch_shape_sf1000_p0/ddl/rf.tmpl deleted file mode 100644 index feb99537035da2..00000000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/ddl/rf.tmpl +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -suite("h_rf{--}") { - String db = context.config.getDbNameByFile(new File(context.file.parent)) - sql "use ${db}" - sql 'set enable_nereids_planner=true' - sql 'set enable_fallback_to_original_planner=false' - sql 'set exec_mem_limit=21G' - sql 'set be_number_for_test=3' - sql 'set parallel_fragment_exec_instance_num=8; ' - sql 'set parallel_pipeline_task_num=8; ' - sql 'set forbid_unknown_col_stats=true' - sql 'set broadcast_row_count_limit = 30000000' - sql 'set enable_nereids_timeout = false' - sql 'set enable_pipeline_engine=true' - sql 'set enable_runtime_filter_prune=false' - sql 'set expand_runtime_filter_by_inner_join=false' - - String stmt = ''' - explain physical plan - {query} - ''' - String plan = sql "${stmt}" - log.info(plan) - def getRuntimeFilters = { plantree -> - { - def lst = [] - plantree.eachMatch("RF\\d+\\[[^#]+#\\d+->\\[[^\\]]+\\]") { - ch -> - { - lst.add(ch.replaceAll("#\\d+", '')) - } - } - return lst.join(',') - } - } - // def outFile = "regression-test/suites/nereids_tpch_shape_sf1000_p0/ddl/rf/rf.{--}" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("{rfs}", getRuntimeFilters(plan)) -} diff --git a/tools/tpcds-tools/queries/sf100/query72.sql b/tools/tpcds-tools/queries/sf100/query72.sql index 29cec192623a30..f3b1d851cb4829 100644 --- a/tools/tpcds-tools/queries/sf100/query72.sql +++ b/tools/tpcds-tools/queries/sf100/query72.sql @@ -1,6 +1,4 @@ -set max_join_number_bushy_tree=10; -set memo_max_group_expression_size=15000; -select i_item_desc +select /*+ SET_VAR(max_join_number_bushy_tree=10, memo_max_group_expression_size=15000)*/ i_item_desc ,w_warehouse_name ,d1.d_week_seq ,sum(case when p_promo_sk is null then 1 else 0 end) no_promo