From 329abc3452152fd2d2b44d5bd340fd8e468fe0bf Mon Sep 17 00:00:00 2001 From: minghong Date: Sat, 18 Nov 2023 19:32:33 +0800 Subject: [PATCH] [feature](nereids) runtime filter prune when column stats are not available (#27099) 1. prune rf when column stats are not available 2. print rf in "explain shape plan", both join side and apply side 3. add regression case to check plan shape/rf/rf prune for tpch_sf1000 (stats are not available) --- .../translator/PhysicalPlanTranslator.java | 14 +- .../translator/RuntimeFilterTranslator.java | 6 - .../processor/post/RuntimeFilterContext.java | 19 +- .../post/RuntimeFilterGenerator.java | 12 +- .../processor/post/RuntimeFilterPruner.java | 58 ++-- .../doris/nereids/stats/StatsCalculator.java | 9 +- .../plans/physical/AbstractPhysicalPlan.java | 21 +- .../physical/PhysicalCatalogRelation.java | 13 + .../plans/physical/PhysicalHashJoin.java | 6 +- .../plans/physical/PhysicalOlapScan.java | 5 - .../trees/plans/physical/RuntimeFilter.java | 20 +- .../doris/statistics/ColumnStatistic.java | 4 + .../data/nereids_hint_tpch_p0/shape/q10.out | 10 +- .../data/nereids_hint_tpch_p0/shape/q12.out | 4 +- .../data/nereids_hint_tpch_p0/shape/q13.out | 4 +- .../data/nereids_hint_tpch_p0/shape/q14.out | 4 +- .../data/nereids_hint_tpch_p0/shape/q16.out | 6 +- .../data/nereids_hint_tpch_p0/shape/q19.out | 4 +- .../data/nereids_hint_tpch_p0/shape/q3.out | 8 +- .../data/nereids_hint_tpch_p0/shape/q4.out | 4 +- .../data/nereids_hint_tpch_p0/shape/q5.out | 18 +- .../data/nereids_hint_tpch_p0/shape/q9.out | 16 +- .../cte/test_cte_filter_pushdown.out | 4 +- .../eliminate_outer_join.out | 62 ++-- .../nereids_ssb_shape_sf100_p0/shape/q1.1.out | 4 +- .../nereids_ssb_shape_sf100_p0/shape/q1.2.out | 4 +- .../nereids_ssb_shape_sf100_p0/shape/q1.3.out | 4 +- .../nereids_ssb_shape_sf100_p0/shape/q2.1.out | 8 +- .../nereids_ssb_shape_sf100_p0/shape/q2.2.out | 8 +- .../nereids_ssb_shape_sf100_p0/shape/q2.3.out | 8 +- .../nereids_ssb_shape_sf100_p0/shape/q3.1.out | 8 +- .../nereids_ssb_shape_sf100_p0/shape/q3.2.out | 8 +- .../nereids_ssb_shape_sf100_p0/shape/q3.3.out | 8 +- .../nereids_ssb_shape_sf100_p0/shape/q3.4.out | 8 +- .../nereids_ssb_shape_sf100_p0/shape/q4.1.out | 10 +- .../nereids_ssb_shape_sf100_p0/shape/q4.2.out | 10 +- .../nereids_ssb_shape_sf100_p0/shape/q4.3.out | 12 +- .../shape/query1.out | 12 +- .../shape/query10.out | 26 +- .../shape/query11.out | 18 +- .../shape/query12.out | 6 +- .../shape/query13.out | 14 +- .../shape/query14.out | 122 ++++---- .../shape/query15.out | 10 +- .../shape/query16.out | 16 +- .../shape/query17.out | 20 +- .../shape/query18.out | 18 +- .../shape/query19.out | 16 +- .../shape/query2.out | 10 +- .../shape/query20.out | 6 +- .../shape/query21.out | 8 +- .../shape/query22.out | 6 +- .../shape/query23.out | 70 ++--- .../shape/query24.out | 32 +- .../shape/query25.out | 20 +- .../shape/query26.out | 10 +- .../shape/query27.out | 10 +- .../shape/query29.out | 20 +- .../shape/query3.out | 6 +- .../shape/query30.out | 14 +- .../shape/query31.out | 22 +- .../shape/query32.out | 6 +- .../shape/query33.out | 36 +-- .../shape/query34.out | 12 +- .../shape/query35.out | 24 +- .../shape/query36.out | 8 +- .../shape/query37.out | 10 +- .../shape/query38.out | 18 +- .../shape/query39.out | 20 +- .../shape/query4.out | 28 +- .../shape/query40.out | 12 +- .../shape/query41.out | 4 +- .../shape/query42.out | 6 +- .../shape/query43.out | 6 +- .../shape/query44.out | 10 +- .../shape/query45.out | 14 +- .../shape/query46.out | 16 +- .../shape/query47.out | 12 +- .../shape/query48.out | 10 +- .../shape/query49.out | 24 +- .../shape/query5.out | 22 +- .../shape/query50.out | 12 +- .../shape/query51.out | 10 +- .../shape/query52.out | 6 +- .../shape/query53.out | 8 +- .../shape/query54.out | 24 +- .../shape/query55.out | 6 +- .../shape/query56.out | 38 +-- .../shape/query57.out | 12 +- .../shape/query58.out | 50 ++-- .../shape/query59.out | 14 +- .../shape/query6.out | 20 +- .../shape/query60.out | 36 +-- .../shape/query61.out | 32 +- .../shape/query62.out | 10 +- .../shape/query63.out | 8 +- .../shape/query64.out | 50 ++-- .../shape/query65.out | 14 +- .../shape/query66.out | 20 +- .../shape/query67.out | 8 +- .../shape/query68.out | 20 +- .../shape/query69.out | 26 +- .../shape/query7.out | 10 +- .../shape/query70.out | 16 +- .../shape/query71.out | 16 +- .../shape/query72.out | 26 +- .../shape/query73.out | 12 +- .../shape/query74.out | 18 +- .../shape/query75.out | 32 +- .../shape/query76.out | 18 +- .../shape/query77.out | 36 +-- .../shape/query78.out | 22 +- .../shape/query79.out | 10 +- .../shape/query8.out | 12 +- .../shape/query80.out | 42 +-- .../shape/query81.out | 14 +- .../shape/query82.out | 10 +- .../shape/query83.out | 50 ++-- .../shape/query84.out | 18 +- .../shape/query85.out | 22 +- .../shape/query86.out | 6 +- .../shape/query87.out | 18 +- .../shape/query88.out | 64 ++-- .../shape/query89.out | 8 +- .../shape/query90.out | 16 +- .../shape/query91.out | 18 +- .../shape/query92.out | 6 +- .../shape/query93.out | 8 +- .../shape/query94.out | 16 +- .../shape/query95.out | 20 +- .../shape/query96.out | 8 +- .../shape/query97.out | 10 +- .../shape/query98.out | 6 +- .../shape/query99.out | 10 +- .../shape/query1.out | 12 +- .../shape/query10.out | 26 +- .../shape/query11.out | 18 +- .../shape/query12.out | 6 +- .../shape/query13.out | 16 +- .../shape/query14.out | 58 ++-- .../shape/query15.out | 10 +- .../shape/query16.out | 16 +- .../shape/query17.out | 20 +- .../shape/query18.out | 20 +- .../shape/query19.out | 16 +- .../shape/query2.out | 10 +- .../shape/query20.out | 6 +- .../shape/query21.out | 8 +- .../shape/query22.out | 6 +- .../shape/query23.out | 32 +- .../shape/query24.out | 16 +- .../shape/query25.out | 20 +- .../shape/query26.out | 10 +- .../shape/query27.out | 10 +- .../shape/query29.out | 20 +- .../shape/query3.out | 6 +- .../shape/query30.out | 14 +- .../shape/query31.out | 22 +- .../shape/query32.out | 6 +- .../shape/query33.out | 36 +-- .../shape/query34.out | 12 +- .../shape/query35.out | 24 +- .../shape/query36.out | 8 +- .../shape/query37.out | 10 +- .../shape/query38.out | 18 +- .../shape/query39.out | 10 +- .../shape/query4.out | 28 +- .../shape/query40.out | 12 +- .../shape/query41.out | 4 +- .../shape/query42.out | 6 +- .../shape/query43.out | 6 +- .../shape/query44.out | 10 +- .../shape/query45.out | 14 +- .../shape/query46.out | 16 +- .../shape/query47.out | 12 +- .../shape/query48.out | 10 +- .../shape/query49.out | 24 +- .../shape/query5.out | 22 +- .../shape/query50.out | 12 +- .../shape/query51.out | 10 +- .../shape/query52.out | 6 +- .../shape/query53.out | 8 +- .../shape/query54.out | 22 +- .../shape/query55.out | 6 +- .../shape/query56.out | 40 +-- .../shape/query57.out | 12 +- .../shape/query58.out | 50 ++-- .../shape/query59.out | 14 +- .../shape/query6.out | 20 +- .../shape/query60.out | 36 +-- .../shape/query61.out | 44 +-- .../shape/query62.out | 10 +- .../shape/query63.out | 8 +- .../shape/query64.out | 54 ++-- .../shape/query65.out | 14 +- .../shape/query66.out | 20 +- .../shape/query67.out | 8 +- .../shape/query68.out | 20 +- .../shape/query69.out | 26 +- .../shape/query7.out | 10 +- .../shape/query70.out | 16 +- .../shape/query71.out | 16 +- .../shape/query72.out | 28 +- .../shape/query73.out | 12 +- .../shape/query74.out | 18 +- .../shape/query75.out | 32 +- .../shape/query76.out | 18 +- .../shape/query77.out | 36 +-- .../shape/query78.out | 22 +- .../shape/query79.out | 10 +- .../shape/query8.out | 12 +- .../shape/query80.out | 42 +-- .../shape/query81.out | 14 +- .../shape/query82.out | 10 +- .../shape/query83.out | 52 ++-- .../shape/query84.out | 18 +- .../shape/query85.out | 22 +- .../shape/query86.out | 6 +- .../shape/query87.out | 18 +- .../shape/query88.out | 64 ++-- .../shape/query89.out | 8 +- .../shape/query90.out | 16 +- .../shape/query91.out | 18 +- .../shape/query92.out | 6 +- .../shape/query93.out | 8 +- .../shape/query94.out | 16 +- .../shape/query95.out | 20 +- .../shape/query96.out | 8 +- .../shape/query97.out | 10 +- .../shape/query98.out | 6 +- .../shape/query99.out | 10 +- .../nostats_rf_prune/q1.out | 13 + .../nostats_rf_prune/q10.out | 30 ++ .../nostats_rf_prune/q11.out | 45 +++ .../nostats_rf_prune/q12.out | 17 ++ .../nostats_rf_prune/q13.out | 21 ++ .../nostats_rf_prune/q14.out | 17 ++ .../nostats_rf_prune/q15.out | 31 ++ .../nostats_rf_prune/q16.out | 25 ++ .../nostats_rf_prune/q17.out | 21 ++ .../nostats_rf_prune/q18.out | 27 ++ .../nostats_rf_prune/q19.out | 17 ++ .../nostats_rf_prune/q2.out | 35 +++ .../nostats_rf_prune/q20-rewrite.out | 35 +++ .../nostats_rf_prune/q20.out | 34 +++ .../nostats_rf_prune/q21.out | 36 +++ .../nostats_rf_prune/q22.out | 27 ++ .../nostats_rf_prune/q3.out | 24 ++ .../nostats_rf_prune/q4.out | 18 ++ .../nostats_rf_prune/q5.out | 41 +++ .../nostats_rf_prune/q6.out | 10 + .../nostats_rf_prune/q7.out | 40 +++ .../nostats_rf_prune/q8.out | 55 ++++ .../nostats_rf_prune/q9.out | 38 +++ .../rf_prune/q1.out | 13 + .../rf_prune/q10.out | 28 ++ .../rf_prune/q11.out | 39 +++ .../rf_prune/q12.out | 17 ++ .../rf_prune/q13.out | 21 ++ .../rf_prune/q14.out | 16 + .../rf_prune/q15.out | 31 ++ .../rf_prune/q16.out | 23 ++ .../rf_prune/q17.out | 21 ++ .../rf_prune/q18.out | 26 ++ .../rf_prune/q19.out | 16 + .../rf_prune/q2.out | 35 +++ .../rf_prune/q20-rewrite.out | 34 +++ .../rf_prune/q20.out | 33 +++ .../rf_prune/q21.out | 34 +++ .../rf_prune/q22.out | 27 ++ .../rf_prune/q3.out | 24 ++ .../rf_prune/q4.out | 18 ++ .../rf_prune/q5.out | 38 +++ .../rf_prune/q6.out | 10 + .../rf_prune/q7.out | 39 +++ .../rf_prune/q8.out | 51 ++++ .../rf_prune/q9.out | 38 +++ .../shape/q10.out | 10 +- .../shape/q11.out | 16 +- .../shape/q12.out | 4 +- .../shape/q13.out | 4 +- .../shape/q14.out | 4 +- .../shape/q15.out | 6 +- .../shape/q16.out | 6 +- .../shape/q17.out | 4 +- .../shape/q18.out | 12 +- .../shape/q19.out | 4 +- .../nereids_tpch_shape_sf1000_p0/shape/q2.out | 14 +- .../shape/q20-rewrite.out | 14 +- .../shape/q20.out | 14 +- .../shape/q21.out | 20 +- .../shape/q22.out | 4 +- .../nereids_tpch_shape_sf1000_p0/shape/q3.out | 8 +- .../nereids_tpch_shape_sf1000_p0/shape/q4.out | 4 +- .../nereids_tpch_shape_sf1000_p0/shape/q5.out | 18 +- .../nereids_tpch_shape_sf1000_p0/shape/q7.out | 18 +- .../nereids_tpch_shape_sf1000_p0/shape/q8.out | 24 +- .../nereids_tpch_shape_sf1000_p0/shape/q9.out | 16 +- .../shape_no_stats/q1.out | 13 + .../shape_no_stats/q10.out | 30 ++ .../shape_no_stats/q11.out | 45 +++ .../shape_no_stats/q12.out | 17 ++ .../shape_no_stats/q13.out | 21 ++ .../shape_no_stats/q14.out | 17 ++ .../shape_no_stats/q15.out | 31 ++ .../shape_no_stats/q16.out | 25 ++ .../shape_no_stats/q17.out | 21 ++ .../shape_no_stats/q18.out | 27 ++ .../shape_no_stats/q19.out | 17 ++ .../shape_no_stats/q2.out | 35 +++ .../shape_no_stats/q20-rewrite.out | 35 +++ .../shape_no_stats/q20.out | 34 +++ .../shape_no_stats/q21.out | 36 +++ .../shape_no_stats/q22.out | 27 ++ .../shape_no_stats/q3.out | 24 ++ .../shape_no_stats/q4.out | 18 ++ .../shape_no_stats/q5.out | 41 +++ .../shape_no_stats/q6.out | 10 + .../shape_no_stats/q7.out | 40 +++ .../shape_no_stats/q8.out | 55 ++++ .../shape_no_stats/q9.out | 38 +++ .../test_runtimefilter_with_window.groovy | 1 + .../nereids_hint_tpch_p0/shape/q1.groovy | 1 + .../nereids_hint_tpch_p0/shape/q10.groovy | 1 + .../nereids_hint_tpch_p0/shape/q12.groovy | 1 + .../nereids_hint_tpch_p0/shape/q13.groovy | 1 + .../nereids_hint_tpch_p0/shape/q14.groovy | 1 + .../nereids_hint_tpch_p0/shape/q16.groovy | 1 + .../nereids_hint_tpch_p0/shape/q19.groovy | 1 + .../nereids_hint_tpch_p0/shape/q3.groovy | 1 + .../nereids_hint_tpch_p0/shape/q4.groovy | 1 + .../nereids_hint_tpch_p0/shape/q5.groovy | 1 + .../nereids_hint_tpch_p0/shape/q6.groovy | 1 + .../nereids_hint_tpch_p0/shape/q9.groovy | 1 + .../cte/test_cte_filter_pushdown.groovy | 4 +- .../eliminate_outer_join.groovy | 1 + .../forbid_unknown_col_stats.groovy | 39 +++ .../shape/q1.1.groovy | 1 + .../shape/q1.2.groovy | 1 + .../shape/q1.3.groovy | 1 + .../shape/q2.1.groovy | 1 + .../shape/q2.2.groovy | 1 + .../shape/q2.3.groovy | 1 + .../shape/q3.1.groovy | 1 + .../shape/q3.2.groovy | 1 + .../shape/q3.3.groovy | 1 + .../shape/q3.4.groovy | 1 + .../shape/q4.1.groovy | 1 + .../shape/q4.2.groovy | 1 + .../shape/q4.3.groovy | 1 + .../shape/query1.groovy | 1 + .../shape/query10.groovy | 1 + .../shape/query11.groovy | 1 + .../shape/query12.groovy | 1 + .../shape/query13.groovy | 1 + .../shape/query14.groovy | 1 + .../shape/query15.groovy | 1 + .../shape/query16.groovy | 1 + .../shape/query17.groovy | 1 + .../shape/query18.groovy | 1 + .../shape/query19.groovy | 1 + .../shape/query2.groovy | 1 + .../shape/query20.groovy | 1 + .../shape/query21.groovy | 1 + .../shape/query22.groovy | 1 + .../shape/query23.groovy | 1 + .../shape/query24.groovy | 1 + .../shape/query25.groovy | 1 + .../shape/query26.groovy | 1 + .../shape/query27.groovy | 1 + .../shape/query28.groovy | 1 + .../shape/query29.groovy | 1 + .../shape/query3.groovy | 1 + .../shape/query30.groovy | 1 + .../shape/query31.groovy | 1 + .../shape/query32.groovy | 1 + .../shape/query33.groovy | 1 + .../shape/query34.groovy | 1 + .../shape/query35.groovy | 1 + .../shape/query36.groovy | 1 + .../shape/query37.groovy | 1 + .../shape/query38.groovy | 1 + .../shape/query39.groovy | 1 + .../shape/query4.groovy | 1 + .../shape/query40.groovy | 1 + .../shape/query41.groovy | 1 + .../shape/query42.groovy | 1 + .../shape/query43.groovy | 1 + .../shape/query44.groovy | 1 + .../shape/query45.groovy | 1 + .../shape/query46.groovy | 1 + .../shape/query47.groovy | 1 + .../shape/query48.groovy | 1 + .../shape/query49.groovy | 1 + .../shape/query5.groovy | 1 + .../shape/query50.groovy | 1 + .../shape/query51.groovy | 1 + .../shape/query52.groovy | 1 + .../shape/query53.groovy | 1 + .../shape/query54.groovy | 1 + .../shape/query55.groovy | 1 + .../shape/query56.groovy | 1 + .../shape/query57.groovy | 1 + .../shape/query58.groovy | 1 + .../shape/query59.groovy | 1 + .../shape/query6.groovy | 1 + .../shape/query60.groovy | 1 + .../shape/query61.groovy | 1 + .../shape/query62.groovy | 1 + .../shape/query63.groovy | 1 + .../shape/query64.groovy | 1 + .../shape/query65.groovy | 1 + .../shape/query66.groovy | 1 + .../shape/query67.groovy | 1 + .../shape/query68.groovy | 1 + .../shape/query69.groovy | 1 + .../shape/query7.groovy | 1 + .../shape/query70.groovy | 1 + .../shape/query71.groovy | 1 + .../shape/query72.groovy | 1 + .../shape/query73.groovy | 1 + .../shape/query74.groovy | 1 + .../shape/query75.groovy | 1 + .../shape/query76.groovy | 1 + .../shape/query77.groovy | 1 + .../shape/query78.groovy | 1 + .../shape/query79.groovy | 1 + .../shape/query8.groovy | 1 + .../shape/query80.groovy | 1 + .../shape/query81.groovy | 1 + .../shape/query82.groovy | 1 + .../shape/query83.groovy | 1 + .../shape/query84.groovy | 1 + .../shape/query85.groovy | 1 + .../shape/query86.groovy | 1 + .../shape/query87.groovy | 1 + .../shape/query88.groovy | 1 + .../shape/query89.groovy | 1 + .../shape/query9.groovy | 1 + .../shape/query90.groovy | 1 + .../shape/query91.groovy | 1 + .../shape/query92.groovy | 1 + .../shape/query93.groovy | 1 + .../shape/query94.groovy | 1 + .../shape/query95.groovy | 1 + .../shape/query96.groovy | 1 + .../shape/query97.groovy | 1 + .../shape/query98.groovy | 1 + .../shape/query99.groovy | 1 + .../rf/ds_rf1.groovy | 81 ----- .../rf/ds_rf10.groovy | 115 -------- .../rf/ds_rf11.groovy | 137 --------- .../rf/ds_rf12.groovy | 90 ------ .../rf/ds_rf13.groovy | 107 ------- .../rf/ds_rf14.groovy | 160 ---------- .../rf/ds_rf15.groovy | 76 ----- .../rf/ds_rf16.groovy | 87 ------ .../rf/ds_rf17.groovy | 101 ------- .../rf/ds_rf18.groovy | 90 ------ .../rf/ds_rf19.groovy | 81 ----- .../rf/ds_rf2.groovy | 116 -------- .../rf/ds_rf20.groovy | 86 ------ .../rf/ds_rf21.groovy | 86 ------ .../rf/ds_rf22.groovy | 76 ----- .../rf/ds_rf23.groovy | 108 ------- .../rf/ds_rf24.groovy | 111 ------- .../rf/ds_rf25.groovy | 103 ------- .../rf/ds_rf26.groovy | 77 ----- .../rf/ds_rf27.groovy | 79 ----- .../rf/ds_rf28.groovy | 109 ------- .../rf/ds_rf29.groovy | 103 ------- .../rf/ds_rf3.groovy | 77 ----- .../rf/ds_rf30.groovy | 87 ------ .../rf/ds_rf31.groovy | 108 ------- .../rf/ds_rf32.groovy | 84 ------ .../rf/ds_rf33.groovy | 131 --------- .../rf/ds_rf34.groovy | 87 ------ .../rf/ds_rf35.groovy | 114 -------- .../rf/ds_rf36.groovy | 86 ------ .../rf/ds_rf37.groovy | 73 ----- .../rf/ds_rf38.groovy | 79 ----- .../rf/ds_rf39.groovy | 83 ------ .../rf/ds_rf4.groovy | 172 ----------- .../rf/ds_rf40.groovy | 84 ------ .../rf/ds_rf41.groovy | 108 ------- .../rf/ds_rf42.groovy | 78 ----- .../rf/ds_rf43.groovy | 75 ----- .../rf/ds_rf44.groovy | 91 ------ .../rf/ds_rf45.groovy | 76 ----- .../rf/ds_rf46.groovy | 90 ------ .../rf/ds_rf47.groovy | 107 ------- .../rf/ds_rf48.groovy | 123 -------- .../rf/ds_rf49.groovy | 185 ------------ .../rf/ds_rf5.groovy | 184 ------------ .../rf/ds_rf50.groovy | 114 -------- .../rf/ds_rf51.groovy | 101 ------- .../rf/ds_rf52.groovy | 78 ----- .../rf/ds_rf53.groovy | 84 ------ .../rf/ds_rf54.groovy | 112 ------- .../rf/ds_rf55.groovy | 70 ----- .../rf/ds_rf56.groovy | 124 -------- .../rf/ds_rf57.groovy | 104 ------- .../rf/ds_rf58.groovy | 121 -------- .../rf/ds_rf59.groovy | 99 ------- .../rf/ds_rf6.groovy | 82 ------ .../rf/ds_rf60.groovy | 134 --------- .../rf/ds_rf61.groovy | 100 ------- .../rf/ds_rf62.groovy | 91 ------ .../rf/ds_rf63.groovy | 85 ------ .../rf/ds_rf64.groovy | 177 ----------- .../rf/ds_rf65.groovy | 85 ------ .../rf/ds_rf66.groovy | 276 ------------------ .../rf/ds_rf67.groovy | 100 ------- .../rf/ds_rf68.groovy | 98 ------- .../rf/ds_rf69.groovy | 103 ------- .../rf/ds_rf7.groovy | 77 ----- .../rf/ds_rf70.groovy | 94 ------ .../rf/ds_rf71.groovy | 96 ------ .../rf/ds_rf72.groovy | 85 ------ .../rf/ds_rf73.groovy | 84 ------ .../rf/ds_rf74.groovy | 117 -------- .../rf/ds_rf75.groovy | 126 -------- .../rf/ds_rf76.groovy | 80 ----- .../rf/ds_rf77.groovy | 164 ----------- .../rf/ds_rf78.groovy | 114 -------- .../rf/ds_rf79.groovy | 79 ----- .../rf/ds_rf8.groovy | 164 ----------- .../rf/ds_rf80.groovy | 152 ---------- .../rf/ds_rf81.groovy | 87 ------ .../rf/ds_rf82.groovy | 73 ----- .../rf/ds_rf83.groovy | 123 -------- .../rf/ds_rf84.groovy | 77 ----- .../rf/ds_rf85.groovy | 140 --------- .../rf/ds_rf86.groovy | 82 ------ .../rf/ds_rf87.groovy | 79 ----- .../rf/ds_rf88.groovy | 150 ---------- .../rf/ds_rf89.groovy | 84 ------ .../rf/ds_rf9.groovy | 107 ------- .../rf/ds_rf90.groovy | 78 ----- .../rf/ds_rf91.groovy | 87 ------ .../rf/ds_rf92.groovy | 86 ------ .../rf/ds_rf93.groovy | 74 ----- .../rf/ds_rf94.groovy | 85 ------ .../rf/ds_rf95.groovy | 88 ------ .../rf/ds_rf96.groovy | 72 ----- .../rf/ds_rf97.groovy | 81 ----- .../rf/ds_rf98.groovy | 89 ------ .../rf/ds_rf99.groovy | 90 ------ .../shape/query1.groovy | 1 + .../shape/query10.groovy | 1 + .../shape/query11.groovy | 1 + .../shape/query12.groovy | 1 + .../shape/query13.groovy | 1 + .../shape/query14.groovy | 1 + .../shape/query15.groovy | 1 + .../shape/query16.groovy | 1 + .../shape/query17.groovy | 1 + .../shape/query18.groovy | 1 + .../shape/query19.groovy | 1 + .../shape/query2.groovy | 1 + .../shape/query20.groovy | 1 + .../shape/query21.groovy | 1 + .../shape/query22.groovy | 1 + .../shape/query23.groovy | 1 + .../shape/query24.groovy | 1 + .../shape/query25.groovy | 1 + .../shape/query26.groovy | 1 + .../shape/query27.groovy | 1 + .../shape/query28.groovy | 1 + .../shape/query29.groovy | 1 + .../shape/query3.groovy | 1 + .../shape/query30.groovy | 1 + .../shape/query31.groovy | 1 + .../shape/query32.groovy | 1 + .../shape/query33.groovy | 1 + .../shape/query34.groovy | 1 + .../shape/query35.groovy | 1 + .../shape/query36.groovy | 1 + .../shape/query37.groovy | 1 + .../shape/query38.groovy | 1 + .../shape/query39.groovy | 1 + .../shape/query4.groovy | 1 + .../shape/query40.groovy | 1 + .../shape/query41.groovy | 1 + .../shape/query42.groovy | 1 + .../shape/query43.groovy | 1 + .../shape/query44.groovy | 1 + .../shape/query45.groovy | 1 + .../shape/query46.groovy | 1 + .../shape/query47.groovy | 1 + .../shape/query48.groovy | 1 + .../shape/query49.groovy | 1 + .../shape/query5.groovy | 1 + .../shape/query50.groovy | 1 + .../shape/query51.groovy | 1 + .../shape/query52.groovy | 1 + .../shape/query53.groovy | 1 + .../shape/query54.groovy | 1 + .../shape/query55.groovy | 1 + .../shape/query56.groovy | 1 + .../shape/query57.groovy | 1 + .../shape/query58.groovy | 1 + .../shape/query59.groovy | 1 + .../shape/query6.groovy | 1 + .../shape/query60.groovy | 1 + .../shape/query61.groovy | 1 + .../shape/query62.groovy | 1 + .../shape/query63.groovy | 1 + .../shape/query64.groovy | 1 + .../shape/query65.groovy | 1 + .../shape/query66.groovy | 1 + .../shape/query67.groovy | 1 + .../shape/query68.groovy | 1 + .../shape/query69.groovy | 1 + .../shape/query7.groovy | 1 + .../shape/query70.groovy | 1 + .../shape/query71.groovy | 1 + .../shape/query72.groovy | 1 + .../shape/query73.groovy | 1 + .../shape/query74.groovy | 1 + .../shape/query75.groovy | 1 + .../shape/query76.groovy | 1 + .../shape/query77.groovy | 1 + .../shape/query78.groovy | 1 + .../shape/query79.groovy | 1 + .../shape/query8.groovy | 1 + .../shape/query80.groovy | 1 + .../shape/query81.groovy | 1 + .../shape/query82.groovy | 1 + .../shape/query83.groovy | 1 + .../shape/query84.groovy | 1 + .../shape/query85.groovy | 1 + .../shape/query86.groovy | 1 + .../shape/query87.groovy | 1 + .../shape/query88.groovy | 1 + .../shape/query89.groovy | 1 + .../shape/query9.groovy | 1 + .../shape/query90.groovy | 1 + .../shape/query91.groovy | 1 + .../shape/query92.groovy | 1 + .../shape/query93.groovy | 1 + .../shape/query94.groovy | 1 + .../shape/query95.groovy | 1 + .../shape/query96.groovy | 1 + .../shape/query97.groovy | 1 + .../shape/query98.groovy | 1 + .../shape/query99.groovy | 1 + .../nostats_rf_prune/q1.groovy | 58 ++++ .../q10.groovy} | 31 +- .../q11.groovy} | 30 +- .../q12.groovy} | 34 +-- .../q13.groovy} | 31 +- .../q14.groovy} | 30 +- .../q15.groovy} | 31 +- .../q16.groovy} | 28 +- .../q17.groovy} | 28 +- .../q18.groovy} | 28 +- .../q19.groovy} | 28 +- .../rf2.groovy => nostats_rf_prune/q2.groovy} | 31 +- .../nostats_rf_prune/q20-rewrite.groovy | 69 +++++ .../q20.groovy} | 28 +- .../q21.groovy} | 28 +- .../q22.groovy} | 26 +- .../rf3.groovy => nostats_rf_prune/q3.groovy} | 30 +- .../rf4.groovy => nostats_rf_prune/q4.groovy} | 32 +- .../rf5.groovy => nostats_rf_prune/q5.groovy} | 31 +- .../nostats_rf_prune/q6.groovy | 50 ++++ .../rf7.groovy => nostats_rf_prune/q7.groovy} | 31 +- .../rf8.groovy => nostats_rf_prune/q8.groovy} | 31 +- .../rf9.groovy => nostats_rf_prune/q9.groovy} | 30 +- .../rf/h_rf1.groovy | 96 ------ .../rf/h_rf10.groovy | 108 ------- .../rf/h_rf11.groovy | 101 ------- .../rf/h_rf12.groovy | 103 ------- .../rf/h_rf13.groovy | 95 ------ .../rf/h_rf14.groovy | 88 ------ .../rf/h_rf15.groovy | 94 ------ .../rf/h_rf16.groovy | 105 ------- .../rf/h_rf17.groovy | 94 ------ .../rf/h_rf18.groovy | 109 ------- .../rf/h_rf19.groovy | 110 ------- .../rf/h_rf2.groovy | 101 ------- .../rf/h_rf20.groovy | 112 ------- .../rf/h_rf21.groovy | 114 -------- .../rf/h_rf22.groovy | 112 ------- .../rf/h_rf3.groovy | 98 ------- .../rf/h_rf4.groovy | 96 ------ .../rf/h_rf5.groovy | 99 ------- .../rf/h_rf6.groovy | 84 ------ .../rf/h_rf7.groovy | 114 -------- .../rf/h_rf8.groovy | 114 -------- .../rf/h_rf9.groovy | 108 ------- .../rf_prune/q1.groovy | 59 ++++ .../rf_prune/q10.groovy | 70 +++++ .../rf_prune/q11.groovy | 67 +++++ .../rf_prune/q12.groovy | 65 +++++ .../rf_prune/q13.groovy | 61 ++++ .../rf_prune/q14.groovy | 51 ++++ .../rf_prune/q15.groovy | 61 ++++ .../rf_prune/q16.groovy | 72 +++++ .../rf_prune/q17.groovy | 59 ++++ .../rf_prune/q18.groovy | 75 +++++ .../rf_prune/q19.groovy | 79 +++++ .../rf_prune/q2.groovy | 86 ++++++ .../rf_prune/q20-rewrite.groovy | 70 +++++ .../rf_prune/q20.groovy | 80 +++++ .../rf_prune/q21.groovy | 82 ++++++ .../rf_prune/q22.groovy | 79 +++++ .../rf_prune/q3.groovy | 66 +++++ .../rf_prune/q4.groovy | 62 ++++ .../rf_prune/q5.groovy | 66 +++++ .../rf_prune/q6.groovy | 51 ++++ .../rf_prune/q7.groovy | 81 +++++ .../rf_prune/q8.groovy | 79 +++++ .../rf_prune/q9.groovy | 74 +++++ .../shape/q1.groovy | 1 + .../shape/q10.groovy | 1 + .../shape/q11.groovy | 1 + .../shape/q12.groovy | 1 + .../shape/q13.groovy | 1 + .../shape/q14.groovy | 1 + .../shape/q15.groovy | 1 + .../shape/q16.groovy | 1 + .../shape/q17.groovy | 1 + .../shape/q18.groovy | 1 + .../shape/q19.groovy | 1 + .../shape/q2.groovy | 1 + .../shape/q20-rewrite.groovy | 1 + .../shape/q20.groovy | 1 + .../shape/q21.groovy | 1 + .../shape/q22.groovy | 1 + .../shape/q3.groovy | 1 + .../shape/q4.groovy | 3 +- .../shape/q5.groovy | 1 + .../shape/q6.groovy | 1 + .../shape/q7.groovy | 1 + .../shape/q8.groovy | 1 + .../shape/q9.groovy | 1 + .../shape_no_stats/q1.groovy | 59 ++++ .../shape_no_stats/q10.groovy | 70 +++++ .../shape_no_stats/q11.groovy | 67 +++++ .../shape_no_stats/q12.groovy | 65 +++++ .../shape_no_stats/q13.groovy | 61 ++++ .../shape_no_stats/q14.groovy | 51 ++++ .../shape_no_stats/q15.groovy | 61 ++++ .../shape_no_stats/q16.groovy | 72 +++++ .../shape_no_stats/q17.groovy | 59 ++++ .../shape_no_stats/q18.groovy | 75 +++++ .../shape_no_stats/q19.groovy | 79 +++++ .../shape_no_stats/q2.groovy | 86 ++++++ .../shape_no_stats/q20-rewrite.groovy | 70 +++++ .../shape_no_stats/q20.groovy | 80 +++++ .../shape_no_stats/q21.groovy | 82 ++++++ .../shape_no_stats/q22.groovy | 79 +++++ .../shape_no_stats/q3.groovy | 66 +++++ .../shape_no_stats/q4.groovy | 62 ++++ .../shape_no_stats/q5.groovy | 66 +++++ .../shape_no_stats/q6.groovy | 51 ++++ .../shape_no_stats/q7.groovy | 81 +++++ .../shape_no_stats/q8.groovy | 79 +++++ .../shape_no_stats/q9.groovy | 74 +++++ 761 files changed, 7853 insertions(+), 14983 deletions(-) create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q1.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q10.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q11.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q12.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q13.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q14.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q15.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q16.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q17.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q18.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q2.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20-rewrite.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q21.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q22.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q3.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q4.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q5.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q6.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q8.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q9.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q1.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q10.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q11.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q12.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q13.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q14.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q15.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q16.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q17.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q18.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q19.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q2.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q20-rewrite.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q20.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q21.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q22.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q3.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q4.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q5.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q6.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q7.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q8.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q9.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q1.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q10.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q11.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q12.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q13.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q14.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q15.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q16.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q17.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q18.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q2.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20-rewrite.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q21.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q22.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q3.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q4.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q5.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q6.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q8.out create mode 100644 regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q9.out create mode 100644 regression-test/suites/nereids_p0/forbid_unknown_col_stats.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf1.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf10.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf11.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf12.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf13.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf14.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf15.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf16.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf17.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf18.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf19.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf2.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf20.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf21.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf22.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf23.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf24.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf25.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf26.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf27.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf28.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf29.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf3.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf30.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf31.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf32.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf33.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf34.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf35.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf36.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf37.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf38.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf39.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf4.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf40.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf41.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf42.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf43.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf44.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf45.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf46.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf47.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf48.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf49.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf5.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf50.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf51.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf52.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf53.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf54.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf55.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf56.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf57.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf58.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf59.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf6.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf60.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf61.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf62.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf63.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf64.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf65.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf66.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf67.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf68.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf69.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf7.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf70.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf71.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf72.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf73.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf74.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf75.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf76.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf77.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf78.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf79.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf8.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf80.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf81.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf82.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf83.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf84.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf85.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf86.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf87.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf88.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf89.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf9.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf90.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf91.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf92.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf93.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf94.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf95.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf96.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf97.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf98.groovy delete mode 100644 regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf99.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q1.groovy rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf10.groovy => nostats_rf_prune/q10.groovy} (73%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf11.groovy => nostats_rf_prune/q11.groovy} (73%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf12.groovy => nostats_rf_prune/q12.groovy} (73%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf13.groovy => nostats_rf_prune/q13.groovy} (71%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf14.groovy => nostats_rf_prune/q14.groovy} (70%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf15.groovy => nostats_rf_prune/q15.groovy} (70%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf16.groovy => nostats_rf_prune/q16.groovy} (74%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf17.groovy => nostats_rf_prune/q17.groovy} (71%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf18.groovy => nostats_rf_prune/q18.groovy} (75%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf19.groovy => nostats_rf_prune/q19.groovy} (79%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf2.groovy => nostats_rf_prune/q2.groovy} (74%) create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20-rewrite.groovy rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf20.groovy => nostats_rf_prune/q20.groovy} (77%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf21.groovy => nostats_rf_prune/q21.groovy} (77%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf22.groovy => nostats_rf_prune/q22.groovy} (78%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf3.groovy => nostats_rf_prune/q3.groovy} (72%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf4.groovy => nostats_rf_prune/q4.groovy} (70%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf5.groovy => nostats_rf_prune/q5.groovy} (72%) create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q6.groovy rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf7.groovy => nostats_rf_prune/q7.groovy} (76%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf8.groovy => nostats_rf_prune/q8.groovy} (75%) rename regression-test/suites/nereids_tpch_shape_sf1000_p0/{rf_prune/rf9.groovy => nostats_rf_prune/q9.groovy} (73%) delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf1.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf10.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf11.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf12.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf13.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf14.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf15.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf16.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf17.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf18.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf19.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf2.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf20.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf21.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf22.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf3.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf4.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf5.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf6.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf7.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf8.groovy delete mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf9.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q1.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q10.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q11.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q12.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q13.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q14.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q15.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q16.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q17.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q18.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q19.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q2.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q20-rewrite.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q20.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q21.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q22.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q3.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q4.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q5.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q6.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q7.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q8.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q9.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q1.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q10.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q11.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q12.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q13.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q14.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q15.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q16.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q17.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q18.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q2.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20-rewrite.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q21.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q22.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q3.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q4.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q5.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q6.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q8.groovy create mode 100644 regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q9.groovy diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java index 5d92125263..6062332012 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java @@ -517,7 +517,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor runtimeFilterGenerator.getTargetOnScanNode(fileScan.getRelationId()).forEach( + runtimeFilterGenerator -> runtimeFilterGenerator.getContext().getTargetListByScan(fileScan).forEach( expr -> runtimeFilterGenerator.translateRuntimeFilterTarget(expr, finalScanNode, context) ) ); @@ -560,7 +560,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor runtimeFilterGenerator.getTargetOnScanNode(esScan.getRelationId()).forEach( + runtimeFilterGenerator -> runtimeFilterGenerator.getContext().getTargetListByScan(esScan).forEach( expr -> runtimeFilterGenerator.translateRuntimeFilterTarget(expr, esScanNode, context) ) ); @@ -583,7 +583,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor runtimeFilterGenerator.getTargetOnScanNode(jdbcScan.getRelationId()).forEach( + runtimeFilterGenerator -> runtimeFilterGenerator.getContext().getTargetListByScan(jdbcScan).forEach( expr -> runtimeFilterGenerator.translateRuntimeFilterTarget(expr, jdbcScanNode, context) ) ); @@ -652,7 +652,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor runtimeFilterTranslator.getTargetOnScanNode(olapScan.getRelationId()) + runtimeFilterTranslator -> runtimeFilterTranslator.getContext().getTargetListByScan(olapScan) .forEach(expr -> runtimeFilterTranslator.translateRuntimeFilterTarget( expr, olapScanNode, context) ) @@ -738,7 +738,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor runtimeFilterGenerator.getTargetOnScanNode(schemaScan.getRelationId()) + runtimeFilterGenerator -> runtimeFilterGenerator.getContext().getTargetListByScan(schemaScan) .forEach(expr -> runtimeFilterGenerator .translateRuntimeFilterTarget(expr, finalScanNode, context) ) @@ -760,7 +760,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor runtimeFilterGenerator.getTargetOnScanNode(tvfRelation.getRelationId()) + runtimeFilterGenerator -> runtimeFilterGenerator.getContext().getTargetListByScan(tvfRelation) .forEach(expr -> runtimeFilterGenerator.translateRuntimeFilterTarget(expr, scanNode, context) ) ); @@ -977,7 +977,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor - runtimeFilterTranslator.getTargetOnScanNode(cteConsumer.getRelationId()).forEach( + runtimeFilterTranslator.getContext().getTargetListByScan(cteConsumer).forEach( expr -> runtimeFilterTranslator.translateRuntimeFilterTarget(expr, cteScanNode, context))); context.getCteScanNodeMap().put(multiCastFragment.getFragmentId(), cteScanNode); diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java index 69c19634c0..91f9790609 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java @@ -28,7 +28,6 @@ import org.apache.doris.nereids.trees.expressions.ExprId; import org.apache.doris.nereids.trees.expressions.Expression; import org.apache.doris.nereids.trees.expressions.Slot; import org.apache.doris.nereids.trees.expressions.SlotReference; -import org.apache.doris.nereids.trees.plans.RelationId; import org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin; import org.apache.doris.nereids.trees.plans.physical.RuntimeFilter; import org.apache.doris.planner.CTEScanNode; @@ -47,7 +46,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; @@ -72,10 +70,6 @@ public class RuntimeFilterTranslator { return context; } - public List getTargetOnScanNode(RelationId id) { - return context.getTargetOnOlapScanNodeMap().getOrDefault(id, Collections.emptyList()); - } - /** * translate runtime filter target. * @param node olap scan node diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterContext.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterContext.java index b60ced6e29..7f6eeedeaf 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterContext.java @@ -28,7 +28,6 @@ import org.apache.doris.nereids.trees.expressions.NamedExpression; import org.apache.doris.nereids.trees.expressions.Slot; import org.apache.doris.nereids.trees.expressions.SlotReference; import org.apache.doris.nereids.trees.plans.Plan; -import org.apache.doris.nereids.trees.plans.RelationId; import org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin; import org.apache.doris.nereids.trees.plans.physical.PhysicalCTEProducer; import org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin; @@ -107,7 +106,7 @@ public class RuntimeFilterContext { private final Map> joinToTargetExprId = Maps.newHashMap(); // olap scan node that contains target of a runtime filter. - private final Map> targetOnOlapScanNodeMap = Maps.newHashMap(); + private final Map> targetOnOlapScanNodeMap = Maps.newHashMap(); private final List legacyFilters = Lists.newArrayList(); @@ -197,6 +196,14 @@ public class RuntimeFilterContext { RuntimeFilter rf = iter.next(); if (rf.getBuilderNode().equals(builderNode)) { builderNode.getRuntimeFilters().remove(rf); + for (Slot target : rf.getTargetSlots()) { + if (target.getExprId().equals(targetId)) { + Pair pair = aliasTransferMap.get(target); + if (pair != null) { + pair.first.removeAppliedRuntimeFilter(rf); + } + } + } iter.remove(); prunedRF.add(rf); } @@ -204,8 +211,8 @@ public class RuntimeFilterContext { } } - public void setTargetsOnScanNode(RelationId id, Slot slot) { - this.targetOnOlapScanNodeMap.computeIfAbsent(id, k -> Lists.newArrayList()).add(slot); + public void setTargetsOnScanNode(PhysicalRelation relation, Slot slot) { + this.targetOnOlapScanNodeMap.computeIfAbsent(relation, k -> Lists.newArrayList()).add(slot); } public RuntimeFilter getRuntimeFilterBySrcAndType(Expression src, @@ -247,8 +254,8 @@ public class RuntimeFilterContext { return targetExprIdToFilter; } - public Map> getTargetOnOlapScanNodeMap() { - return targetOnOlapScanNodeMap; + public List getTargetListByScan(PhysicalRelation scan) { + return targetOnOlapScanNodeMap.getOrDefault(scan, Collections.emptyList()); } public List getLegacyFilters() { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java index 776aa5396f..579fe7485a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java @@ -183,12 +183,14 @@ public class RuntimeFilterGenerator extends PlanPostProcessor { continue; } Slot scanSlot = aliasTransferMap.get(targetSlot).second; + PhysicalRelation scan = aliasTransferMap.get(targetSlot).first; RuntimeFilter filter = new RuntimeFilter(generator.getNextId(), bitmapContains.child(0), ImmutableList.of(scanSlot), ImmutableList.of(bitmapContains.child(1)), type, i, join, isNot, -1L); + scan.addAppliedRuntimeFilter(filter); ctx.addJoinToTargetMap(join, scanSlot.getExprId()); ctx.setTargetExprIdToFilter(scanSlot.getExprId(), filter); - ctx.setTargetsOnScanNode(aliasTransferMap.get(targetSlot).first.getRelationId(), + ctx.setTargetsOnScanNode(aliasTransferMap.get(targetSlot).first, scanSlot); join.addBitmapRuntimeFilterCondition(bitmapRuntimeFilterCondition); } @@ -266,9 +268,10 @@ public class RuntimeFilterGenerator extends PlanPostProcessor { compare.child(1), ImmutableList.of(olapScanSlot), ImmutableList.of(olapScanSlot), TRuntimeFilterType.MIN_MAX, exprOrder, join, true, buildSideNdv, getMinMaxType(compare)); + scan.addAppliedRuntimeFilter(filter); ctx.addJoinToTargetMap(join, olapScanSlot.getExprId()); ctx.setTargetExprIdToFilter(olapScanSlot.getExprId(), filter); - ctx.setTargetsOnScanNode(scan.getRelationId(), olapScanSlot); + ctx.setTargetsOnScanNode(scan, olapScanSlot); } } } @@ -600,6 +603,7 @@ public class RuntimeFilterGenerator extends PlanPostProcessor { (SlotReference) targetExpr, aliasTransferMap); if (!pushDownBasicTableInfos.isEmpty()) { List targetList = new ArrayList<>(); + List targetNodes = new ArrayList<>(); for (Map.Entry entry : pushDownBasicTableInfos.entrySet()) { Slot targetSlot = entry.getKey(); PhysicalRelation scan = entry.getValue(); @@ -607,13 +611,15 @@ public class RuntimeFilterGenerator extends PlanPostProcessor { continue; } targetList.add(targetSlot); + targetNodes.add(scan); ctx.addJoinToTargetMap(join, targetSlot.getExprId()); - ctx.setTargetsOnScanNode(scan.getRelationId(), targetSlot); + ctx.setTargetsOnScanNode(scan, targetSlot); } // build multi-target runtime filter // since always on different join, set the expr_order as 0 RuntimeFilter filter = new RuntimeFilter(generator.getNextId(), equalTo.right(), targetList, type, 0, join, buildSideNdv); + targetNodes.forEach(node -> node.addAppliedRuntimeFilter(filter)); for (Slot slot : targetList) { ctx.setTargetExprIdToFilter(slot.getExprId(), filter); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPruner.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPruner.java index c9cc43d0c2..e32d12edac 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPruner.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPruner.java @@ -25,12 +25,9 @@ import org.apache.doris.nereids.trees.expressions.Slot; import org.apache.doris.nereids.trees.plans.AbstractPlan; import org.apache.doris.nereids.trees.plans.Plan; import org.apache.doris.nereids.trees.plans.physical.PhysicalAssertNumRows; -import org.apache.doris.nereids.trees.plans.physical.PhysicalDistribute; import org.apache.doris.nereids.trees.plans.physical.PhysicalFilter; import org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin; import org.apache.doris.nereids.trees.plans.physical.PhysicalLimit; -import org.apache.doris.nereids.trees.plans.physical.PhysicalProject; -import org.apache.doris.nereids.trees.plans.physical.PhysicalQuickSort; import org.apache.doris.nereids.trees.plans.physical.PhysicalRelation; import org.apache.doris.nereids.trees.plans.physical.PhysicalTopN; import org.apache.doris.statistics.ColumnStatistic; @@ -54,12 +51,14 @@ import java.util.Set; public class RuntimeFilterPruner extends PlanPostProcessor { @Override - public PhysicalQuickSort visitPhysicalQuickSort(PhysicalQuickSort sort, CascadesContext context) { - sort.child().accept(this, context); - if (context.getRuntimeFilterContext().isEffectiveSrcNode(sort.child())) { - context.getRuntimeFilterContext().addEffectiveSrcNode(sort); + public Plan visit(Plan plan, CascadesContext context) { + if (!plan.children().isEmpty()) { + plan.child(0).accept(this, context); + if (context.getRuntimeFilterContext().isEffectiveSrcNode(plan.child(0))) { + context.getRuntimeFilterContext().addEffectiveSrcNode(plan); + } } - return sort; + return plan; } @Override @@ -97,16 +96,10 @@ public class RuntimeFilterPruner extends PlanPostProcessor { } } join.left().accept(this, context); - return join; - } - - @Override - public PhysicalProject visitPhysicalProject(PhysicalProject project, CascadesContext context) { - project.child().accept(this, context); - if (context.getRuntimeFilterContext().isEffectiveSrcNode(project.child())) { - context.getRuntimeFilterContext().addEffectiveSrcNode(project); + if (context.getRuntimeFilterContext().isEffectiveSrcNode(join.left())) { + context.getRuntimeFilterContext().addEffectiveSrcNode(join); } - return project; + return join; } @Override @@ -119,31 +112,17 @@ public class RuntimeFilterPruner extends PlanPostProcessor { @Override public PhysicalRelation visitPhysicalRelation(PhysicalRelation scan, CascadesContext context) { RuntimeFilterContext rfCtx = context.getRuntimeFilterContext(); - List slots = rfCtx.getTargetOnOlapScanNodeMap().get(scan.getRelationId()); - if (slots != null) { - for (Slot slot : slots) { - //if this scan node is the target of any effective RF, it is effective source - if (!rfCtx.getTargetExprIdToFilter().get(slot.getExprId()).isEmpty()) { - context.getRuntimeFilterContext().addEffectiveSrcNode(scan); - break; - } + List slots = rfCtx.getTargetListByScan(scan); + for (Slot slot : slots) { + //if this scan node is the target of any effective RF, it is effective source + if (!rfCtx.getTargetExprIdToFilter().get(slot.getExprId()).isEmpty()) { + context.getRuntimeFilterContext().addEffectiveSrcNode(scan); + break; } } return scan; } - // ******************************* - // Physical enforcer - // ******************************* - public PhysicalDistribute visitPhysicalDistribute(PhysicalDistribute distribute, - CascadesContext context) { - distribute.child().accept(this, context); - if (context.getRuntimeFilterContext().isEffectiveSrcNode(distribute.child())) { - context.getRuntimeFilterContext().addEffectiveSrcNode(distribute); - } - return distribute; - } - public PhysicalAssertNumRows visitPhysicalAssertNumRows(PhysicalAssertNumRows assertNumRows, CascadesContext context) { assertNumRows.child().accept(this, context); @@ -185,10 +164,11 @@ public class RuntimeFilterPruner extends PlanPostProcessor { return false; } } - //without column statistics, we can not judge if the rf is effective. + if (probeColumnStat.isUnKnown || buildColumnStat.isUnKnown) { - return true; + return false; } + double buildNdvInProbeRange = buildColumnStat.ndvIntersection(probeColumnStat); return probeColumnStat.ndv > buildNdvInProbeRange * (1 + ColumnStatistic.STATS_ERROR); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java index 61e7538774..741fe60e20 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java @@ -640,8 +640,7 @@ public class StatsCalculator extends DefaultPlanVisitor { throw new RuntimeException(String.format("Invalid slot: %s", slotReference.getExprId())); } ColumnStatistic cache; - if (ConnectContext.get() == null || !ConnectContext.get().getSessionVariable().enableStats - || !FeConstants.enableInternalSchemaDb + if (!FeConstants.enableInternalSchemaDb || shouldIgnoreThisCol) { cache = ColumnStatistic.UNKNOWN; } else { @@ -663,7 +662,11 @@ public class StatsCalculator extends DefaultPlanVisitor { cache = columnStatisticBuilder.build(); } } - columnStatisticMap.put(slotReference, cache); + if (ConnectContext.get() != null && ConnectContext.get().getSessionVariable().enableStats) { + columnStatisticMap.put(slotReference, cache); + } else { + columnStatisticMap.put(slotReference, ColumnStatistic.UNKNOWN); + } } return new Statistics(rowCount, columnStatisticMap); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalPlan.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalPlan.java index d1f3a410f2..145f459202 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalPlan.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalPlan.java @@ -40,7 +40,9 @@ import org.apache.doris.thrift.TRuntimeFilterType; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import java.util.List; import java.util.Map; import java.util.Optional; import javax.annotation.Nullable; @@ -49,8 +51,8 @@ import javax.annotation.Nullable; * Abstract class for all concrete physical plan. */ public abstract class AbstractPhysicalPlan extends AbstractPlan implements PhysicalPlan, Explainable { - protected final PhysicalProperties physicalProperties; + private final List appliedRuntimeFilters = Lists.newArrayList(); public AbstractPhysicalPlan(PlanType type, LogicalProperties logicalProperties, Plan... children) { this(type, Optional.empty(), logicalProperties, children); @@ -121,13 +123,14 @@ public abstract class AbstractPhysicalPlan extends AbstractPlan implements Physi Preconditions.checkState(scanSlot != null, "scan slot is null"); if (filter != null) { filter.addTargetSlot(scanSlot); - filter.addTargetExpressoin(scanSlot); + filter.addTargetExpression(scanSlot); } else { filter = new RuntimeFilter(generator.getNextId(), src, ImmutableList.of(scanSlot), type, exprOrder, builderNode, buildSideNdv); + this.addAppliedRuntimeFilter(filter); ctx.addJoinToTargetMap(builderNode, scanSlot.getExprId()); ctx.setTargetExprIdToFilter(scanSlot.getExprId(), filter); - ctx.setTargetsOnScanNode(aliasTransferMap.get(probeExpr).first.getRelationId(), scanSlot); + ctx.setTargetsOnScanNode(aliasTransferMap.get(probeExpr).first, scanSlot); ctx.setRuntimeFilterIdentityToFilter(src, type, builderNode, filter); } return true; @@ -144,4 +147,16 @@ public abstract class AbstractPhysicalPlan extends AbstractPlan implements Physi newPlan.setMutableState(MutableState.KEY_GROUP, from.getGroupIdAsString()); return newPlan; } + + public List getAppliedRuntimeFilters() { + return appliedRuntimeFilters; + } + + public void addAppliedRuntimeFilter(RuntimeFilter filter) { + appliedRuntimeFilters.add(filter); + } + + public void removeAppliedRuntimeFilter(RuntimeFilter filter) { + appliedRuntimeFilters.remove(filter); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalCatalogRelation.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalCatalogRelation.java index 57e3b94221..5537b4dd7c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalCatalogRelation.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalCatalogRelation.java @@ -127,4 +127,17 @@ public abstract class PhysicalCatalogRelation extends PhysicalRelation implement public boolean canPushDownRuntimeFilter() { return true; } + + @Override + public String shapeInfo() { + StringBuilder shapeBuilder = new StringBuilder(); + shapeBuilder.append(this.getClass().getSimpleName()) + .append("[").append(table.getName()).append("]"); + if (!getAppliedRuntimeFilters().isEmpty()) { + shapeBuilder.append(" apply RFs:"); + getAppliedRuntimeFilters() + .stream().forEach(rf -> shapeBuilder.append(" RF").append(rf.getId().asInt())); + } + return shapeBuilder.toString(); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java index 994b4d4f97..0041812796 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java @@ -255,7 +255,11 @@ public class PhysicalHashJoin< builder.append(hashJoinConjuncts.stream().map(conjunct -> conjunct.shapeInfo()) .sorted().collect(Collectors.joining(" and ", " hashCondition=(", ")"))); builder.append(otherJoinConjuncts.stream().map(cond -> cond.shapeInfo()) - .sorted().collect(Collectors.joining(" and ", "otherCondition=(", ")"))); + .sorted().collect(Collectors.joining(" and ", " otherCondition=(", ")"))); + if (!runtimeFilters.isEmpty()) { + builder.append(" build RFs:").append(runtimeFilters.stream() + .map(rf -> rf.shapeInfo()).collect(Collectors.joining(";"))); + } return builder.toString(); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOlapScan.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOlapScan.java index c7f4a71835..20c4ebf795 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOlapScan.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOlapScan.java @@ -180,11 +180,6 @@ public class PhysicalOlapScan extends PhysicalCatalogRelation implements OlapSca getLogicalProperties(), physicalProperties, statistics, tableSample); } - @Override - public String shapeInfo() { - return this.getClass().getSimpleName() + "[" + table.getName() + "]"; - } - @Override public JSONObject toJson() { JSONObject olapScan = super.toJson(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/RuntimeFilter.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/RuntimeFilter.java index f213a8996c..d928c45078 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/RuntimeFilter.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/RuntimeFilter.java @@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import java.util.List; +import java.util.stream.Collectors; /** * runtime filter @@ -128,7 +129,11 @@ public class RuntimeFilter { targetSlots.add(target); } - public void addTargetExpressoin(Expression targetExpr) { + public List getTargetSlots() { + return targetSlots; + } + + public void addTargetExpression(Expression targetExpr) { targetExpressions.add(targetExpr); } @@ -142,4 +147,17 @@ public class RuntimeFilter { .append(")"); return sb.toString(); } + + /** + * print rf in explain shape plan + * @return brief version of toString() + */ + public String shapeInfo() { + StringBuilder sb = new StringBuilder(); + sb.append("RF").append(id.asInt()) + .append(" ").append(getSrcExpr().toSql()).append("->[").append( + targetSlots.stream().map(slot -> slot.getName()).collect(Collectors.joining(","))) + .append("]"); + return sb.toString(); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java index eefaf7bade..4ad2ff8220 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java @@ -267,6 +267,10 @@ public class ColumnStatistic { if (isUnKnown) { return 1; } + if (Double.isInfinite(minValue) || Double.isInfinite(maxValue) + || Double.isInfinite(other.minValue) || Double.isInfinite(other.maxValue)) { + return 1; + } if (maxValue == minValue) { if (minValue <= other.maxValue && minValue >= other.minValue) { return 1; diff --git a/regression-test/data/nereids_hint_tpch_p0/shape/q10.out b/regression-test/data/nereids_hint_tpch_p0/shape/q10.out index e851939352..10f56f2b5c 100644 --- a/regression-test/data/nereids_hint_tpch_p0/shape/q10.out +++ b/regression-test/data/nereids_hint_tpch_p0/shape/q10.out @@ -8,18 +8,18 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF2 o_orderkey->[l_orderkey] ------------------PhysicalProject --------------------filter((lineitem.l_returnflag = 'R')) -----------------------PhysicalOlapScan[lineitem] +----------------------PhysicalOlapScan[lineitem] apply RFs: RF2 ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = nation.n_nationkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF1 n_nationkey->[c_nationkey] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 o_custkey->[c_custkey] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[customer] +--------------------------------PhysicalOlapScan[customer] apply RFs: RF0 RF1 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((orders.o_orderdate < '1994-01-01') and (orders.o_orderdate >= '1993-10-01')) diff --git a/regression-test/data/nereids_hint_tpch_p0/shape/q12.out b/regression-test/data/nereids_hint_tpch_p0/shape/q12.out index 57568e3f9a..b98f742595 100644 --- a/regression-test/data/nereids_hint_tpch_p0/shape/q12.out +++ b/regression-test/data/nereids_hint_tpch_p0/shape/q12.out @@ -8,9 +8,9 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 l_orderkey->[o_orderkey] ------------------PhysicalProject ---------------------PhysicalOlapScan[orders] +--------------------PhysicalOlapScan[orders] apply RFs: RF0 ------------------PhysicalProject --------------------filter((lineitem.l_commitdate < lineitem.l_receiptdate) and (lineitem.l_receiptdate < '1995-01-01') and (lineitem.l_receiptdate >= '1994-01-01') and (lineitem.l_shipdate < lineitem.l_commitdate) and l_shipmode IN ('MAIL', 'SHIP')) ----------------------PhysicalOlapScan[lineitem] diff --git a/regression-test/data/nereids_hint_tpch_p0/shape/q13.out b/regression-test/data/nereids_hint_tpch_p0/shape/q13.out index f2536ac81b..9521bbf2e7 100644 --- a/regression-test/data/nereids_hint_tpch_p0/shape/q13.out +++ b/regression-test/data/nereids_hint_tpch_p0/shape/q13.out @@ -10,11 +10,11 @@ PhysicalResultSink --------------PhysicalProject ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey))otherCondition=() +--------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(( not (o_comment like '%special%requests%'))) -----------------------------PhysicalOlapScan[orders] +----------------------------PhysicalOlapScan[orders] apply RFs: RF0 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------PhysicalOlapScan[customer] diff --git a/regression-test/data/nereids_hint_tpch_p0/shape/q14.out b/regression-test/data/nereids_hint_tpch_p0/shape/q14.out index 2477855e42..34e85bcda6 100644 --- a/regression-test/data/nereids_hint_tpch_p0/shape/q14.out +++ b/regression-test/data/nereids_hint_tpch_p0/shape/q14.out @@ -6,9 +6,9 @@ PhysicalResultSink ------PhysicalDistribute --------hashAgg[LOCAL] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = part.p_partkey))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = part.p_partkey)) otherCondition=() build RFs:RF0 l_partkey->[p_partkey] --------------PhysicalProject -----------------PhysicalOlapScan[part] +----------------PhysicalOlapScan[part] apply RFs: RF0 --------------PhysicalDistribute ----------------PhysicalProject ------------------filter((lineitem.l_shipdate < '1995-10-01') and (lineitem.l_shipdate >= '1995-09-01')) diff --git a/regression-test/data/nereids_hint_tpch_p0/shape/q16.out b/regression-test/data/nereids_hint_tpch_p0/shape/q16.out index 308e8fe650..d949613852 100644 --- a/regression-test/data/nereids_hint_tpch_p0/shape/q16.out +++ b/regression-test/data/nereids_hint_tpch_p0/shape/q16.out @@ -7,12 +7,12 @@ PhysicalResultSink --------hashAgg[GLOBAL] ----------PhysicalDistribute ------------hashAgg[LOCAL] ---------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey))otherCondition=() +--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey)) otherCondition=() build RFs:RF0 p_partkey->[ps_partkey] ----------------------PhysicalProject -------------------------PhysicalOlapScan[partsupp] +------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 ----------------------PhysicalProject ------------------------filter(( not (p_brand = 'Brand#45')) and ( not (p_type like 'MEDIUM POLISHED%')) and p_size IN (14, 19, 23, 3, 36, 45, 49, 9)) --------------------------PhysicalOlapScan[part] diff --git a/regression-test/data/nereids_hint_tpch_p0/shape/q19.out b/regression-test/data/nereids_hint_tpch_p0/shape/q19.out index b4f4ba8c30..0689045753 100644 --- a/regression-test/data/nereids_hint_tpch_p0/shape/q19.out +++ b/regression-test/data/nereids_hint_tpch_p0/shape/q19.out @@ -5,11 +5,11 @@ PhysicalResultSink ----PhysicalDistribute ------hashAgg[LOCAL] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey))otherCondition=(((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND ((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND (part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10))) OR ((((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) AND (part.p_size <= 15)))) +----------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=(((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND ((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND (part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10))) OR ((((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) AND (part.p_size <= 15)))) build RFs:RF0 p_partkey->[l_partkey] ------------PhysicalDistribute --------------PhysicalProject ----------------filter(((((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00)) OR ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) OR ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) and (lineitem.l_shipinstruct = 'DELIVER IN PERSON') and l_shipmode IN ('AIR REG', 'AIR')) -------------------PhysicalOlapScan[lineitem] +------------------PhysicalOlapScan[lineitem] apply RFs: RF0 ------------PhysicalDistribute --------------PhysicalProject ----------------filter((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND (part.p_size <= 5)) OR (((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND (part.p_size <= 10))) OR (((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND (part.p_size <= 15))) and (part.p_size >= 1)) diff --git a/regression-test/data/nereids_hint_tpch_p0/shape/q3.out b/regression-test/data/nereids_hint_tpch_p0/shape/q3.out index 87b731ecc7..25edf8184c 100644 --- a/regression-test/data/nereids_hint_tpch_p0/shape/q3.out +++ b/regression-test/data/nereids_hint_tpch_p0/shape/q3.out @@ -6,17 +6,17 @@ PhysicalResultSink ------PhysicalTopN[LOCAL_SORT] --------hashAgg[LOCAL] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF1 o_orderkey->[l_orderkey] --------------PhysicalProject ----------------filter((lineitem.l_shipdate > '1995-03-15')) -------------------PhysicalOlapScan[lineitem] +------------------PhysicalOlapScan[lineitem] apply RFs: RF1 --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((orders.o_orderdate < '1995-03-15')) ---------------------------PhysicalOlapScan[orders] +--------------------------PhysicalOlapScan[orders] apply RFs: RF0 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((customer.c_mktsegment = 'BUILDING')) diff --git a/regression-test/data/nereids_hint_tpch_p0/shape/q4.out b/regression-test/data/nereids_hint_tpch_p0/shape/q4.out index 0d10507395..afdd554649 100644 --- a/regression-test/data/nereids_hint_tpch_p0/shape/q4.out +++ b/regression-test/data/nereids_hint_tpch_p0/shape/q4.out @@ -8,10 +8,10 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey))otherCondition=() +----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF0 o_orderkey->[l_orderkey] ------------------PhysicalProject --------------------filter((lineitem.l_commitdate < lineitem.l_receiptdate)) -----------------------PhysicalOlapScan[lineitem] +----------------------PhysicalOlapScan[lineitem] apply RFs: RF0 ------------------PhysicalProject --------------------filter((orders.o_orderdate < '1993-10-01') and (orders.o_orderdate >= '1993-07-01')) ----------------------PhysicalOlapScan[orders] diff --git a/regression-test/data/nereids_hint_tpch_p0/shape/q5.out b/regression-test/data/nereids_hint_tpch_p0/shape/q5.out index df95bf5e70..da3b8168d9 100644 --- a/regression-test/data/nereids_hint_tpch_p0/shape/q5.out +++ b/regression-test/data/nereids_hint_tpch_p0/shape/q5.out @@ -8,28 +8,28 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey) and (customer.c_nationkey = supplier.s_nationkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey) and (customer.c_nationkey = supplier.s_nationkey)) otherCondition=() build RFs:RF4 c_nationkey->[s_nationkey];RF5 c_custkey->[o_custkey] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF3 o_orderkey->[l_orderkey] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_suppkey = supplier.s_suppkey))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF2 s_suppkey->[l_suppkey] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[lineitem] +----------------------------------PhysicalOlapScan[lineitem] apply RFs: RF2 RF3 ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF1 n_nationkey->[s_nationkey] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[supplier] +----------------------------------------PhysicalOlapScan[supplier] apply RFs: RF1 RF4 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF0 r_regionkey->[n_regionkey] ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[nation] +----------------------------------------------PhysicalOlapScan[nation] apply RFs: RF0 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter((region.r_name = 'ASIA')) @@ -37,7 +37,7 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((orders.o_orderdate < '1995-01-01') and (orders.o_orderdate >= '1994-01-01')) -------------------------------PhysicalOlapScan[orders] +------------------------------PhysicalOlapScan[orders] apply RFs: RF5 ------------------PhysicalDistribute --------------------PhysicalProject ----------------------PhysicalOlapScan[customer] diff --git a/regression-test/data/nereids_hint_tpch_p0/shape/q9.out b/regression-test/data/nereids_hint_tpch_p0/shape/q9.out index b5fbe20655..f984bd9ea8 100644 --- a/regression-test/data/nereids_hint_tpch_p0/shape/q9.out +++ b/regression-test/data/nereids_hint_tpch_p0/shape/q9.out @@ -8,31 +8,31 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_partkey = lineitem.l_partkey) and (partsupp.ps_suppkey = lineitem.l_suppkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_partkey = lineitem.l_partkey) and (partsupp.ps_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF4 ps_partkey->[l_partkey];RF5 ps_suppkey->[l_suppkey] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF3 l_orderkey->[o_orderkey] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[orders] +--------------------------PhysicalOlapScan[orders] apply RFs: RF3 ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF2 s_suppkey->[l_suppkey] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF1 p_partkey->[l_partkey] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[lineitem] +----------------------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 RF2 RF4 RF5 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((p_name like '%green%')) ------------------------------------------PhysicalOlapScan[part] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[s_nationkey] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[supplier] +----------------------------------------PhysicalOlapScan[supplier] apply RFs: RF0 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------PhysicalOlapScan[nation] diff --git a/regression-test/data/nereids_p0/cte/test_cte_filter_pushdown.out b/regression-test/data/nereids_p0/cte/test_cte_filter_pushdown.out index 1c07885350..2a984c18fc 100644 --- a/regression-test/data/nereids_p0/cte/test_cte_filter_pushdown.out +++ b/regression-test/data/nereids_p0/cte/test_cte_filter_pushdown.out @@ -10,7 +10,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --PhysicalResultSink ----PhysicalDistribute ------PhysicalProject ---------hashJoin[INNER_JOIN] hashCondition=((m1.k1 = m2.k1))otherCondition=() +--------hashJoin[INNER_JOIN] hashCondition=((m1.k1 = m2.k1)) otherCondition=() ----------PhysicalDistribute ------------filter((temp.k1 = 1)) --------------PhysicalCteConsumer ( cteId=CTEId#0 ) @@ -32,7 +32,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --PhysicalResultSink ----PhysicalDistribute ------PhysicalProject ---------hashJoin[INNER_JOIN] hashCondition=((m1.k1 = m2.k1))otherCondition=() +--------hashJoin[INNER_JOIN] hashCondition=((m1.k1 = m2.k1)) otherCondition=() ----------PhysicalDistribute ------------filter((temp.k1 = 1)) --------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_p0/eliminate_outer_join/eliminate_outer_join.out b/regression-test/data/nereids_p0/eliminate_outer_join/eliminate_outer_join.out index a5fe3687d1..127f3a1996 100644 --- a/regression-test/data/nereids_p0/eliminate_outer_join/eliminate_outer_join.out +++ b/regression-test/data/nereids_p0/eliminate_outer_join/eliminate_outer_join.out @@ -1,23 +1,23 @@ -- This file is automatically generated. You should know what you did if you want to edit this -- !1 -- PhysicalResultSink ---hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey))otherCondition=() -----hashJoin[INNER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey))otherCondition=() -------hashJoin[INNER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey))otherCondition=() ---------PhysicalOlapScan[region] +--hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF2 ps_suppkey->[s_suppkey] +----hashJoin[INNER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[n_nationkey] +------hashJoin[INNER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey)) otherCondition=() build RFs:RF0 n_regionkey->[r_regionkey] +--------PhysicalOlapScan[region] apply RFs: RF0 --------filter(( not n_nationkey IS NULL) and (nation.n_nationkey > 1)) -----------PhysicalOlapScan[nation] +----------PhysicalOlapScan[nation] apply RFs: RF1 ------filter(( not s_suppkey IS NULL) and (supplier.s_suppkey > 1)) ---------PhysicalOlapScan[supplier] +--------PhysicalOlapScan[supplier] apply RFs: RF2 ----filter(( not ps_suppkey IS NULL) and (partsupp.ps_suppkey > 1)) ------PhysicalOlapScan[partsupp] -- !2 -- PhysicalResultSink ---hashJoin[RIGHT_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey))otherCondition=() +--hashJoin[RIGHT_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() ----filter((supplier.s_suppkey > 1)) -------hashJoin[FULL_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey))otherCondition=() ---------hashJoin[FULL_OUTER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey))otherCondition=() +------hashJoin[FULL_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey)) otherCondition=() +--------hashJoin[FULL_OUTER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey)) otherCondition=() ----------PhysicalOlapScan[region] ----------PhysicalOlapScan[nation] --------PhysicalOlapScan[supplier] @@ -26,10 +26,10 @@ PhysicalResultSink -- !3 -- PhysicalResultSink ---hashJoin[RIGHT_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey))otherCondition=() +--hashJoin[RIGHT_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() ----filter((supplier.s_suppkey > 1)) -------hashJoin[LEFT_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey))otherCondition=() ---------hashJoin[FULL_OUTER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey))otherCondition=() +------hashJoin[LEFT_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey)) otherCondition=() +--------hashJoin[FULL_OUTER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey)) otherCondition=() ----------PhysicalOlapScan[region] ----------PhysicalOlapScan[nation] --------PhysicalOlapScan[supplier] @@ -38,15 +38,15 @@ PhysicalResultSink -- !4 -- PhysicalResultSink ---hashJoin[LEFT_OUTER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey))otherCondition=() +--hashJoin[LEFT_OUTER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey)) otherCondition=() ----filter(( not r_name IS NULL) and (region.r_name = '')) ------PhysicalOlapScan[region] ----PhysicalOlapScan[nation] -- !5 -- PhysicalResultSink ---hashJoin[LEFT_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey))otherCondition=() -----hashJoin[LEFT_OUTER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey))otherCondition=() +--hashJoin[LEFT_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey)) otherCondition=() +----hashJoin[LEFT_OUTER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey)) otherCondition=() ------filter(( not r_name IS NULL) and (region.r_name = '')) --------PhysicalOlapScan[region] ------PhysicalOlapScan[nation] @@ -54,9 +54,9 @@ PhysicalResultSink -- !6 -- PhysicalResultSink ---hashJoin[LEFT_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey))otherCondition=() -----hashJoin[LEFT_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey))otherCondition=() -------hashJoin[LEFT_OUTER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey))otherCondition=() +--hashJoin[LEFT_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() +----hashJoin[LEFT_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey)) otherCondition=() +------hashJoin[LEFT_OUTER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey)) otherCondition=() --------filter(( not r_name IS NULL) and (region.r_name = '')) ----------PhysicalOlapScan[region] --------PhysicalOlapScan[nation] @@ -65,11 +65,11 @@ PhysicalResultSink -- !7 -- PhysicalResultSink ---hashJoin[FULL_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey))otherCondition=() -----hashJoin[LEFT_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey))otherCondition=() -------hashJoin[INNER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey))otherCondition=() +--hashJoin[FULL_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() +----hashJoin[LEFT_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey)) otherCondition=() +------hashJoin[INNER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey)) otherCondition=() build RFs:RF0 n_regionkey->[r_regionkey] --------filter(( not r_regionkey IS NULL)) -----------PhysicalOlapScan[region] +----------PhysicalOlapScan[region] apply RFs: RF0 --------filter(( not n_regionkey IS NULL)) ----------PhysicalOlapScan[nation] ------PhysicalOlapScan[supplier] @@ -77,11 +77,11 @@ PhysicalResultSink -- !8 -- PhysicalResultSink ---hashJoin[LEFT_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey))otherCondition=() -----hashJoin[LEFT_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey))otherCondition=() -------hashJoin[INNER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey))otherCondition=() +--hashJoin[LEFT_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() +----hashJoin[LEFT_OUTER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey)) otherCondition=() +------hashJoin[INNER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey)) otherCondition=() build RFs:RF0 n_regionkey->[r_regionkey] --------filter(( not r_name IS NULL) and ( not r_regionkey IS NULL) and (region.r_name = '')) -----------PhysicalOlapScan[region] +----------PhysicalOlapScan[region] apply RFs: RF0 --------filter(( not n_regionkey IS NULL)) ----------PhysicalOlapScan[nation] ------PhysicalOlapScan[supplier] @@ -89,13 +89,13 @@ PhysicalResultSink -- !9 -- PhysicalResultSink ---hashJoin[LEFT_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey))otherCondition=() -----hashJoin[INNER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey))otherCondition=() -------hashJoin[INNER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey))otherCondition=() +--hashJoin[LEFT_OUTER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() +----hashJoin[INNER_JOIN] hashCondition=((nation.n_nationkey = supplier.s_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[n_nationkey] +------hashJoin[INNER_JOIN] hashCondition=((region.r_regionkey = nation.n_regionkey)) otherCondition=() build RFs:RF0 n_regionkey->[r_regionkey] --------filter(( not r_name IS NULL) and ( not r_regionkey IS NULL) and (region.r_name = '')) -----------PhysicalOlapScan[region] +----------PhysicalOlapScan[region] apply RFs: RF0 --------filter(( not n_regionkey IS NULL)) -----------PhysicalOlapScan[nation] +----------PhysicalOlapScan[nation] apply RFs: RF1 ------PhysicalOlapScan[supplier] ----PhysicalOlapScan[partsupp] diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.1.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.1.out index 2862a626ce..60dc87a3d6 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.1.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.1.out @@ -5,10 +5,10 @@ PhysicalResultSink ----PhysicalDistribute ------hashAgg[LOCAL] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF0 d_datekey->[lo_orderdate] ------------PhysicalProject --------------filter((lineorder.lo_discount <= 3) and (lineorder.lo_discount >= 1) and (lineorder.lo_quantity < 25)) -----------------PhysicalOlapScan[lineorder] +----------------PhysicalOlapScan[lineorder] apply RFs: RF0 ------------PhysicalDistribute --------------PhysicalProject ----------------filter((dates.d_year = 1993)) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.2.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.2.out index 051e308ad3..4812917ba7 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.2.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.2.out @@ -5,10 +5,10 @@ PhysicalResultSink ----PhysicalDistribute ------hashAgg[LOCAL] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF0 d_datekey->[lo_orderdate] ------------PhysicalProject --------------filter((lineorder.lo_discount <= 6) and (lineorder.lo_discount >= 4) and (lineorder.lo_quantity <= 35) and (lineorder.lo_quantity >= 26)) -----------------PhysicalOlapScan[lineorder] +----------------PhysicalOlapScan[lineorder] apply RFs: RF0 ------------PhysicalDistribute --------------PhysicalProject ----------------filter((dates.d_yearmonth = 'Jan1994')) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.3.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.3.out index efe26b1ccc..8b548192e5 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.3.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q1.3.out @@ -5,10 +5,10 @@ PhysicalResultSink ----PhysicalDistribute ------hashAgg[LOCAL] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF0 d_datekey->[lo_orderdate] ------------PhysicalProject --------------filter((lineorder.lo_discount <= 7) and (lineorder.lo_discount >= 5) and (lineorder.lo_quantity <= 35) and (lineorder.lo_quantity >= 26)) -----------------PhysicalOlapScan[lineorder] +----------------PhysicalOlapScan[lineorder] apply RFs: RF0 ------------PhysicalDistribute --------------PhysicalProject ----------------filter((dates.d_weeknuminyear = 6) and (dates.d_year = 1994)) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.1.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.1.out index b9621f8507..6025868c87 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.1.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.1.out @@ -8,12 +8,12 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF2 d_datekey->[lo_orderdate] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[lo_suppkey] +----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey)) otherCondition=() build RFs:RF0 p_partkey->[lo_partkey] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[lineorder] +--------------------------PhysicalOlapScan[lineorder] apply RFs: RF0 RF1 RF2 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((part.p_category = 'MFGR#12')) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.2.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.2.out index 535a65bc8a..ea7ac27786 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.2.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.2.out @@ -8,14 +8,14 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF2 d_datekey->[lo_orderdate] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[lo_suppkey] ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey)) otherCondition=() build RFs:RF0 p_partkey->[lo_partkey] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[lineorder] +------------------------------PhysicalOlapScan[lineorder] apply RFs: RF0 RF1 RF2 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((part.p_brand <= 'MFGR#2228') and (part.p_brand >= 'MFGR#2221')) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.3.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.3.out index a4d529d60d..214d873f15 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.3.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q2.3.out @@ -8,14 +8,14 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF2 d_datekey->[lo_orderdate] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[lo_suppkey] ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey)) otherCondition=() build RFs:RF0 p_partkey->[lo_partkey] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[lineorder] +------------------------------PhysicalOlapScan[lineorder] apply RFs: RF0 RF1 RF2 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((part.p_brand = 'MFGR#2239')) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.1.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.1.out index 28d1704573..2be09999c7 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.1.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.1.out @@ -8,13 +8,13 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF2 d_datekey->[lo_orderdate] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey)) otherCondition=() build RFs:RF1 c_custkey->[lo_custkey] ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF0 s_suppkey->[lo_suppkey] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[lineorder] +----------------------------PhysicalOlapScan[lineorder] apply RFs: RF0 RF1 RF2 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((supplier.s_region = 'ASIA')) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.2.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.2.out index 35a4432d29..065498fa2c 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.2.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.2.out @@ -8,13 +8,13 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF2 d_datekey->[lo_orderdate] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey)) otherCondition=() build RFs:RF1 c_custkey->[lo_custkey] ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF0 s_suppkey->[lo_suppkey] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[lineorder] +----------------------------PhysicalOlapScan[lineorder] apply RFs: RF0 RF1 RF2 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((supplier.s_nation = 'UNITED STATES')) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.3.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.3.out index 61e28be69f..ae0be1c883 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.3.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.3.out @@ -8,14 +8,14 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF2 d_datekey->[lo_orderdate] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey)) otherCondition=() build RFs:RF1 c_custkey->[lo_custkey] ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF0 s_suppkey->[lo_suppkey] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[lineorder] +------------------------------PhysicalOlapScan[lineorder] apply RFs: RF0 RF1 RF2 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter(s_city IN ('UNITED KI1', 'UNITED KI5')) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.4.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.4.out index 9fff884f6e..7aa4207dc1 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.4.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q3.4.out @@ -8,13 +8,13 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey)) otherCondition=() build RFs:RF2 c_custkey->[lo_custkey] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF1 d_datekey->[lo_orderdate] +------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF0 s_suppkey->[lo_suppkey] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[lineorder] +----------------------------PhysicalOlapScan[lineorder] apply RFs: RF0 RF1 RF2 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter(s_city IN ('UNITED KI1', 'UNITED KI5')) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.1.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.1.out index 87017db4e3..7ca913d2e2 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.1.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.1.out @@ -8,16 +8,16 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF3 d_datekey->[lo_orderdate] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey)) otherCondition=() build RFs:RF2 p_partkey->[lo_partkey] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey)) otherCondition=() build RFs:RF1 c_custkey->[lo_custkey] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF0 s_suppkey->[lo_suppkey] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[lineorder] +----------------------------------PhysicalOlapScan[lineorder] apply RFs: RF0 RF1 RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((supplier.s_region = 'AMERICA')) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.2.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.2.out index da173a743e..712dc79a00 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.2.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.2.out @@ -8,16 +8,16 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey)) otherCondition=() build RFs:RF3 p_partkey->[lo_partkey] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey)) otherCondition=() build RFs:RF2 c_custkey->[lo_custkey] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() -------------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF1 d_datekey->[lo_orderdate] +------------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF0 s_suppkey->[lo_suppkey] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[lineorder] +----------------------------------PhysicalOlapScan[lineorder] apply RFs: RF0 RF1 RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((supplier.s_region = 'AMERICA')) diff --git a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.3.out b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.3.out index b036458c4d..7373f5a095 100644 --- a/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.3.out +++ b/regression-test/data/nereids_ssb_shape_sf100_p0/shape/q4.3.out @@ -8,16 +8,16 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_custkey = customer.c_custkey)) otherCondition=() build RFs:RF3 lo_custkey->[c_custkey] ------------------PhysicalProject ---------------------PhysicalOlapScan[customer] +--------------------PhysicalOlapScan[customer] apply RFs: RF3 ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_orderdate = dates.d_datekey)) otherCondition=() build RFs:RF2 d_datekey->[lo_orderdate] +------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_partkey = part.p_partkey)) otherCondition=() build RFs:RF1 p_partkey->[lo_partkey] +--------------------------hashJoin[INNER_JOIN] hashCondition=((lineorder.lo_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF0 s_suppkey->[lo_suppkey] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[lineorder] +------------------------------PhysicalOlapScan[lineorder] apply RFs: RF0 RF1 RF2 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((supplier.s_nation = 'UNITED STATES')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query1.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query1.out index e133014879..03273f76c9 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query1.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query1.out @@ -7,9 +7,9 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ----------------PhysicalProject -------------------PhysicalOlapScan[store_returns] +------------------PhysicalOlapScan[store_returns] apply RFs: RF0 ----------------PhysicalDistribute ------------------PhysicalProject --------------------filter((date_dim.d_year = 2000)) @@ -19,14 +19,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF2 ctr_customer_sk->[c_customer_sk] --------------PhysicalDistribute ----------------PhysicalProject -------------------PhysicalOlapScan[customer] +------------------PhysicalOlapScan[customer] apply RFs: RF2 --------------PhysicalDistribute -----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_store_sk = ctr2.ctr_store_sk))otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) +----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_store_sk = ctr2.ctr_store_sk)) otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = ctr1.ctr_store_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = ctr1.ctr_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ctr_store_sk] ----------------------PhysicalDistribute ------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------PhysicalDistribute diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query10.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query10.out index 701e54cb82..277f39c63a 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query10.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query10.out @@ -9,12 +9,12 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ss_customer_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ss_sold_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_sales] +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF4 RF5 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_moy <= 6) and (date_dim.d_moy >= 3) and (date_dim.d_year = 2001)) @@ -22,35 +22,35 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter(($c$1 OR $c$2)) ---------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk))otherCondition=() -----------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +--------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) otherCondition=() +----------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) otherCondition=() build RFs:RF3 c_current_cdemo_sk->[cd_demo_sk] ----------------------------------PhysicalDistribute -------------------------------------PhysicalOlapScan[customer_demographics] +------------------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF3 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[c_current_addr_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[customer] +------------------------------------------PhysicalOlapScan[customer] apply RFs: RF2 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter(ca_county IN ('Campbell County', 'Cleburne County', 'Escambia County', 'Fairfield County', 'Washtenaw County')) ----------------------------------------------PhysicalOlapScan[customer_address] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[web_sales] +--------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((date_dim.d_moy <= 6) and (date_dim.d_moy >= 3) and (date_dim.d_year = 2001)) ------------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_moy <= 6) and (date_dim.d_moy >= 3) and (date_dim.d_year = 2001)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query11.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query11.out index 645b672533..f174b5f50b 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query11.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query11.out @@ -8,11 +8,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF1 c_customer_sk->[ss_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------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] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1998, 1999)) @@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ws_bill_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ws_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_sales] +------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 RF3 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1998, 1999)) @@ -42,10 +42,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id))otherCondition=((if((year_total > 0.00), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), 0) > if((year_total > 0.00), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), 0))) +------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id)) otherCondition=((if((year_total > 0.00), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), 0) > if((year_total > 0.00), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), 0))) --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id))otherCondition=() -------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id)) otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id)) otherCondition=() --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((t_s_firstyear.dyear = 1998) and (t_s_firstyear.sale_type = 's') and (t_s_firstyear.year_total > 0.00)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query12.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query12.out index f20a1becc9..fea6f65979 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query12.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query12.out @@ -12,11 +12,11 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ws_item_sk] --------------------------PhysicalDistribute -----------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[web_sales] +--------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((date_dim.d_date <= '2001-07-15') and (date_dim.d_date >= '2001-06-15')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query13.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query13.out index c3a52e1120..0cdc54876a 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query13.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query13.out @@ -5,23 +5,23 @@ PhysicalResultSink ----PhysicalDistribute ------hashAgg[LOCAL] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF4 s_store_sk->[ss_store_sk] ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk))otherCondition=(((((((customer_demographics.cd_marital_status = 'M') AND (customer_demographics.cd_education_status = 'College')) AND ((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00))) AND (household_demographics.hd_dep_count = 3)) OR ((((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = 'Primary')) AND ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00))) AND (household_demographics.hd_dep_count = 1))) OR ((((customer_demographics.cd_marital_status = 'W') AND (customer_demographics.cd_education_status = '2 yr Degree')) AND ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00))) AND (household_demographics.hd_dep_count = 1)))) +----------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) otherCondition=(((((((customer_demographics.cd_marital_status = 'M') AND (customer_demographics.cd_education_status = 'College')) AND ((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00))) AND (household_demographics.hd_dep_count = 3)) OR ((((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = 'Primary')) AND ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00))) AND (household_demographics.hd_dep_count = 1))) OR ((((customer_demographics.cd_marital_status = 'W') AND (customer_demographics.cd_education_status = '2 yr Degree')) AND ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00))) AND (household_demographics.hd_dep_count = 1)))) build RFs:RF3 ss_cdemo_sk->[cd_demo_sk] ------------------PhysicalDistribute --------------------PhysicalProject ----------------------filter(((((customer_demographics.cd_marital_status = 'M') AND (customer_demographics.cd_education_status = 'College')) OR ((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = 'Primary'))) OR ((customer_demographics.cd_marital_status = 'W') AND (customer_demographics.cd_education_status = '2 yr Degree')))) -------------------------PhysicalOlapScan[customer_demographics] +------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF3 ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=((((ca_state IN ('IL', 'TN', 'TX') AND ((store_sales.ss_net_profit >= 100.00) AND (store_sales.ss_net_profit <= 200.00))) OR (ca_state IN ('ID', 'OH', 'WY') AND ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 300.00)))) OR (ca_state IN ('IA', 'MS', 'SC') AND ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 250.00))))) +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[ss_hdemo_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=((((ca_state IN ('IL', 'TN', 'TX') AND ((store_sales.ss_net_profit >= 100.00) AND (store_sales.ss_net_profit <= 200.00))) OR (ca_state IN ('ID', 'OH', 'WY') AND ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 300.00)))) OR (ca_state IN ('IA', 'MS', 'SC') AND ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 250.00))))) build RFs:RF0 ca_address_sk->[ss_addr_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter(((((store_sales.ss_net_profit >= 100.00) AND (store_sales.ss_net_profit <= 200.00)) OR ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 300.00))) OR ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 250.00))) and ((((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00)))) -----------------------------------PhysicalOlapScan[store_sales] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF4 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter(((ca_state IN ('IL', 'TN', 'TX') OR ca_state IN ('ID', 'OH', 'WY')) OR ca_state IN ('IA', 'MS', 'SC')) and (customer_address.ca_country = 'United States')) 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 84aba63dbc..2985962d1f 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 @@ -3,20 +3,20 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --PhysicalCteProducer ( cteId=CTEId#0 ) ----PhysicalProject -------hashJoin[INNER_JOIN] hashCondition=((item.i_brand_id = t.brand_id) and (item.i_category_id = t.category_id) and (item.i_class_id = t.class_id))otherCondition=() +------hashJoin[INNER_JOIN] hashCondition=((item.i_brand_id = t.brand_id) and (item.i_category_id = t.category_id) and (item.i_class_id = t.class_id)) otherCondition=() build RFs:RF6 class_id->[i_class_id];RF7 category_id->[i_category_id];RF8 brand_id->[i_brand_id] --------PhysicalDistribute ----------PhysicalProject -------------PhysicalOlapScan[item] +------------PhysicalOlapScan[item] apply RFs: RF6 RF7 RF8 --------PhysicalIntersect ----------PhysicalDistribute ------------hashAgg[GLOBAL] --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = iss.i_item_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk))otherCondition=() +--------------------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] +--------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((d1.d_year <= 2001) and (d1.d_year >= 1999)) @@ -29,10 +29,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = ics.i_item_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d2.d_date_sk))otherCondition=() +--------------------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] +--------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((d2.d_year <= 2001) and (d2.d_year >= 1999)) @@ -45,10 +45,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = iws.i_item_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = d3.d_date_sk))otherCondition=() +--------------------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] +--------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 RF5 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((d3.d_year <= 2001) and (d3.d_year >= 1999)) @@ -64,27 +64,27 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------------PhysicalUnion --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------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] +----------------------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=() +------------------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] +----------------------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=() +------------------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] +----------------------PhysicalOlapScan[web_sales] apply RFs: RF11 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((date_dim.d_year <= 2001) and (date_dim.d_year >= 1999)) @@ -106,12 +106,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------------------PhysicalDistribute ----------------------------------hashAgg[LOCAL] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() -----------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((store_sales.ss_item_sk = cross_items.ss_item_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF14 i_item_sk->[ss_item_sk] +----------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((store_sales.ss_item_sk = cross_items.ss_item_sk)) otherCondition=() build RFs:RF13 ss_item_sk->[ss_item_sk] ------------------------------------------PhysicalDistribute ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF12 d_date_sk->[ss_sold_date_sk] ----------------------------------------------PhysicalProject -------------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF12 RF13 RF14 ----------------------------------------------PhysicalDistribute ------------------------------------------------PhysicalProject --------------------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 2001)) @@ -132,12 +132,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------------------PhysicalDistribute ----------------------------------hashAgg[LOCAL] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() -----------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((catalog_sales.cs_item_sk = cross_items.ss_item_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF17 i_item_sk->[cs_item_sk] +----------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((catalog_sales.cs_item_sk = cross_items.ss_item_sk)) otherCondition=() build RFs:RF16 ss_item_sk->[cs_item_sk] ------------------------------------------PhysicalDistribute ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF15 d_date_sk->[cs_sold_date_sk] ----------------------------------------------PhysicalProject -------------------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF15 RF16 RF17 ----------------------------------------------PhysicalDistribute ------------------------------------------------PhysicalProject --------------------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 2001)) @@ -158,12 +158,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------------------PhysicalDistribute ----------------------------------hashAgg[LOCAL] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() -----------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF20 i_item_sk->[ws_item_sk] +----------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk)) otherCondition=() build RFs:RF19 ss_item_sk->[ws_item_sk] ------------------------------------------PhysicalDistribute ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF18 d_date_sk->[ws_sold_date_sk] ----------------------------------------------PhysicalProject -------------------------------------------------PhysicalOlapScan[web_sales] +------------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF18 RF19 RF20 ----------------------------------------------PhysicalDistribute ------------------------------------------------PhysicalProject --------------------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 2001)) @@ -182,20 +182,20 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) 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=() +------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] --------PhysicalDistribute ----------PhysicalProject -------------PhysicalOlapScan[item] +------------PhysicalOlapScan[item] apply RFs: RF6 RF7 RF8 --------PhysicalIntersect ----------PhysicalDistribute ------------hashAgg[GLOBAL] --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = iss.i_item_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk))otherCondition=() +--------------------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] +--------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((d1.d_year <= 2001) and (d1.d_year >= 1999)) @@ -208,10 +208,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = ics.i_item_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d2.d_date_sk))otherCondition=() +--------------------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] +--------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((d2.d_year <= 2001) and (d2.d_year >= 1999)) @@ -224,10 +224,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = iws.i_item_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = d3.d_date_sk))otherCondition=() +--------------------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] +--------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 RF5 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((d3.d_year <= 2001) and (d3.d_year >= 1999)) @@ -243,27 +243,27 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------------PhysicalUnion --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------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] +----------------------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=() +------------------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] +----------------------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=() +------------------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] +----------------------PhysicalOlapScan[web_sales] apply RFs: RF11 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((date_dim.d_year <= 2001) and (date_dim.d_year >= 1999)) @@ -272,7 +272,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------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=() +------------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 @@ -280,22 +280,22 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------------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] +--------------------------------PhysicalOlapScan[item] apply RFs: RF19 ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((store_sales.ss_item_sk = cross_items.ss_item_sk))otherCondition=() +----------------------------------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=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF17 ----------------------------------------PhysicalDistribute -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +------------------------------------------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] +----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF16 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalAssertNumRows ------------------------------------------------PhysicalDistribute @@ -313,22 +313,22 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------------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] +--------------------------------PhysicalOlapScan[item] apply RFs: RF15 ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((store_sales.ss_item_sk = cross_items.ss_item_sk))otherCondition=() +----------------------------------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=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF13 ----------------------------------------PhysicalDistribute -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +------------------------------------------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] +----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF12 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalAssertNumRows ------------------------------------------------PhysicalDistribute diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query15.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query15.out index 2291446150..9e2cb3f4e9 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query15.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query15.out @@ -8,21 +8,21 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk))otherCondition=(((substring(ca_zip, 1, 5) IN ('80348', '81792', '83405', '85392', '85460', '85669', '86197', '86475', '88274') OR ca_state IN ('CA', 'GA', 'WA')) OR (catalog_sales.cs_sales_price > 500.00))) +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) otherCondition=(((substring(ca_zip, 1, 5) IN ('80348', '81792', '83405', '85392', '85460', '85669', '86197', '86475', '88274') OR ca_state IN ('CA', 'GA', 'WA')) OR (catalog_sales.cs_sales_price > 500.00))) build RFs:RF2 c_customer_sk->[cs_bill_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_sales] +------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF1 RF2 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((date_dim.d_qoy = 2) and (date_dim.d_year = 2001)) ----------------------------PhysicalOlapScan[date_dim] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[c_current_addr_sk] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------PhysicalOlapScan[customer] +----------------------------PhysicalOlapScan[customer] apply RFs: RF0 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------PhysicalOlapScan[customer_address] diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query16.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query16.out index 363da12511..3fe19ee10d 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query16.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query16.out @@ -9,20 +9,20 @@ PhysicalResultSink ------------hashAgg[GLOBAL] --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((cs1.cs_order_number = cs2.cs_order_number))otherCondition=(( not (cs_warehouse_sk = cs_warehouse_sk))) +------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((cs1.cs_order_number = cs2.cs_order_number)) otherCondition=(( not (cs_warehouse_sk = cs_warehouse_sk))) build RFs:RF4 cs_order_number->[cs_order_number] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_sales] ---------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((cs1.cs_order_number = cr1.cr_order_number))otherCondition=() +------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4 +--------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((cs1.cs_order_number = cr1.cr_order_number)) otherCondition=() build RFs:RF3 cs_order_number->[cr_order_number] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------PhysicalOlapScan[catalog_returns] +--------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF3 ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_call_center_sk = call_center.cc_call_center_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_ship_date_sk = date_dim.d_date_sk))otherCondition=() -----------------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_ship_addr_sk = customer_address.ca_address_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_call_center_sk = call_center.cc_call_center_sk)) otherCondition=() build RFs:RF2 cc_call_center_sk->[cs_call_center_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_ship_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_ship_date_sk] +----------------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_ship_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[cs_ship_addr_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((customer_address.ca_state = 'PA')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query17.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query17.out index 0a1d9f2442..a9ca31b6e2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query17.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query17.out @@ -9,33 +9,33 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF8 sr_customer_sk->[cs_bill_customer_sk];RF9 sr_item_sk->[cs_item_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk)) otherCondition=() build RFs:RF7 d_date_sk->[cs_sold_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[catalog_sales] +----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF7 RF8 RF9 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter(d_quarter_name IN ('2001Q1', '2001Q2', '2001Q3')) --------------------------------PhysicalOlapScan[date_dim] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF6 s_store_sk->[ss_store_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk)) otherCondition=() build RFs:RF5 i_item_sk->[ss_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() -----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number)) otherCondition=() build RFs:RF2 sr_customer_sk->[ss_customer_sk];RF3 sr_item_sk->[ss_item_sk];RF4 sr_ticket_number->[ss_ticket_number] +----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 RF5 RF6 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((d1.d_quarter_name = '2001Q1')) ------------------------------------------PhysicalOlapScan[date_dim] -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_returns] +--------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF0 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter(d_quarter_name IN ('2001Q1', '2001Q2', '2001Q3')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query18.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query18.out index 62991b6366..62ce64f655 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query18.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query18.out @@ -10,33 +10,33 @@ PhysicalResultSink --------------hashAgg[LOCAL] ----------------PhysicalRepeat ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF5 i_item_sk->[cs_item_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[cs_sold_date_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[cs_bill_customer_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = cd1.cd_demo_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = cd1.cd_demo_sk)) otherCondition=() build RFs:RF2 cd_demo_sk->[cs_bill_cdemo_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[catalog_sales] +----------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 RF4 RF5 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((cd1.cd_education_status = 'Primary') and (cd1.cd_gender = 'F')) --------------------------------------------PhysicalOlapScan[customer_demographics] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_cdemo_sk = cd2.cd_demo_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_cdemo_sk = cd2.cd_demo_sk)) otherCondition=() build RFs:RF1 c_current_cdemo_sk->[cd_demo_sk] --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[customer_demographics] +------------------------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF1 --------------------------------------PhysicalDistribute -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[c_current_addr_sk] ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter(c_birth_month IN (1, 10, 11, 3, 4, 7)) -------------------------------------------------PhysicalOlapScan[customer] +------------------------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter(ca_state IN ('AL', 'CA', 'GA', 'IN', 'MO', 'MT', 'TN')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query19.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query19.out index 1a3cda920a..bd57a6ad84 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query19.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query19.out @@ -9,23 +9,23 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=(( not (substring(ca_zip, 1, 5) = substring(s_zip, 1, 5)))) +------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=(( not (substring(ca_zip, 1, 5) = substring(s_zip, 1, 5)))) build RFs:RF4 s_store_sk->[ss_store_sk] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 c_current_addr_sk->[ca_address_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[customer_address] +--------------------------PhysicalOlapScan[customer_address] apply RFs: RF3 ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF2 ss_customer_sk->[c_customer_sk] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[customer] +----------------------------------PhysicalOlapScan[customer] apply RFs: RF2 ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() -------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[store_sales] +----------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF4 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((item.i_manager_id = 14)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query2.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query2.out index af16154cfe..4a45ede0d2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query2.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query2.out @@ -6,11 +6,11 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) ------PhysicalDistribute --------hashAgg[LOCAL] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = wscs.sold_date_sk))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = wscs.sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk,cs_sold_date_sk] --------------PhysicalUnion ----------------PhysicalDistribute ------------------PhysicalProject ---------------------PhysicalOlapScan[web_sales] +--------------------PhysicalOlapScan[web_sales] apply RFs: RF0 ----------------PhysicalDistribute ------------------PhysicalProject --------------------PhysicalOlapScan[catalog_sales] @@ -22,10 +22,10 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) ------PhysicalDistribute --------PhysicalQuickSort[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(d_week_seq2 - 53)))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(d_week_seq2 - 53))) otherCondition=() --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = d_week_seq1))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = d_week_seq1)) otherCondition=() build RFs:RF2 d_week_seq->[d_week_seq] --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) @@ -35,7 +35,7 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) --------------------------PhysicalOlapScan[date_dim] --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = d_week_seq2))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = d_week_seq2)) otherCondition=() build RFs:RF1 d_week_seq->[d_week_seq] --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query20.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query20.out index 670332983b..faffb33f27 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query20.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query20.out @@ -12,11 +12,11 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[cs_item_sk] --------------------------PhysicalDistribute -----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((date_dim.d_date <= '2002-07-18') and (date_dim.d_date >= '2002-06-18')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query21.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query21.out index f84ec324ee..7d4f150f30 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query21.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query21.out @@ -9,11 +9,11 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF2 w_warehouse_sk->[inv_warehouse_sk] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = inventory.inv_item_sk))otherCondition=() ---------------------------PhysicalOlapScan[inventory] +----------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[inv_date_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = inventory.inv_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[inv_item_sk] +--------------------------PhysicalOlapScan[inventory] apply RFs: RF0 RF1 RF2 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((item.i_current_price <= 1.49) and (item.i_current_price >= 0.99)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query22.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query22.out index bd9b7d8773..e981e8d085 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query22.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query22.out @@ -10,11 +10,11 @@ PhysicalResultSink --------------hashAgg[LOCAL] ----------------PhysicalRepeat ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[inv_item_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[inv_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[inventory] +----------------------------PhysicalOlapScan[inventory] apply RFs: RF0 RF1 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_month_seq <= 1211) and (date_dim.d_month_seq >= 1200)) 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 89c2172fdb..4a9c85f1b2 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 @@ -8,11 +8,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------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=() +--------------------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] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (2000, 2001, 2002, 2003)) @@ -26,10 +26,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------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=() +--------------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] +--------------------PhysicalOlapScan[store_sales] apply RFs: RF4 ----------------PhysicalDistribute ------------------PhysicalProject --------------------PhysicalOlapScan[customer] @@ -41,11 +41,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalProject ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------------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=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter(d_year IN (2000, 2001, 2002, 2003)) @@ -61,17 +61,17 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------hashAgg[LOCAL] ----------------PhysicalUnion ------------------PhysicalProject ---------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk))otherCondition=() +--------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk)) otherCondition=() ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = best_ss_customer.c_customer_sk))otherCondition=() +--------------------------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=() +------------------------------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] +----------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 RF6 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_moy = 7) and (date_dim.d_year = 2000)) @@ -80,17 +80,17 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#2 ) ------------------PhysicalProject ---------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk))otherCondition=() +--------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk)) otherCondition=() ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = best_ss_customer.c_customer_sk))otherCondition=() +--------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = best_ss_customer.c_customer_sk)) otherCondition=() build RFs:RF8 c_customer_sk->[ws_bill_customer_sk] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF7 d_date_sk->[ws_sold_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_sales] +----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF7 RF8 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_moy = 7) and (date_dim.d_year = 2000)) @@ -108,11 +108,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------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=() +--------------------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] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (2000, 2001, 2002, 2003)) @@ -126,10 +126,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------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=() +--------------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] +--------------------PhysicalOlapScan[store_sales] apply RFs: RF4 ----------------PhysicalDistribute ------------------PhysicalProject --------------------PhysicalOlapScan[customer] @@ -141,11 +141,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalProject ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------------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=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter(d_year IN (2000, 2001, 2002, 2003)) @@ -162,17 +162,17 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------------PhysicalDistribute ------------------hashAgg[LOCAL] --------------------PhysicalProject -----------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk))otherCondition=() +----------------------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=() -----------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = best_ss_customer.c_customer_sk))otherCondition=() +--------------------------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=() +--------------------------------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] +------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 RF6 RF7 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_moy = 7) and (date_dim.d_year = 2000)) @@ -187,20 +187,20 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------------PhysicalDistribute ------------------hashAgg[LOCAL] --------------------PhysicalProject -----------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk))otherCondition=() +----------------------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=() +--------------------------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] -----------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = best_ss_customer.c_customer_sk))otherCondition=() +--------------------------------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=() +--------------------------------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] +------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF8 RF9 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_moy = 7) and (date_dim.d_year = 2000)) 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 cae08667f7..baa5933859 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 @@ -7,25 +7,25 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------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=() +--------------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=() -----------------------hashJoin[INNER_JOIN] hashCondition=((store.s_zip = customer_address.ca_zip) and (store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------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=() +----------------------------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] +--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF3 RF4 RF5 RF6 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((store.s_market_id = 5)) -------------------------------------PhysicalOlapScan[store] +------------------------------------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)))) +--------------------------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] +--------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalOlapScan[customer_address] @@ -65,25 +65,25 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------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=() +--------------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=() -----------------------hashJoin[INNER_JOIN] hashCondition=((store.s_zip = customer_address.ca_zip) and (store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------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=() +----------------------------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] +--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF3 RF4 RF5 RF6 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((store.s_market_id = 5)) -------------------------------------PhysicalOlapScan[store] +------------------------------------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)))) +--------------------------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] +--------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalOlapScan[customer_address] diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query25.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query25.out index dce0204e58..fca0fef64c 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query25.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query25.out @@ -8,33 +8,33 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF8 sr_customer_sk->[cs_bill_customer_sk];RF9 sr_item_sk->[cs_item_sk] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk)) otherCondition=() build RFs:RF7 d_date_sk->[cs_sold_date_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[catalog_sales] +--------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF7 RF8 RF9 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((d3.d_moy <= 10) and (d3.d_moy >= 4) and (d3.d_year = 1999)) ------------------------------PhysicalOlapScan[date_dim] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF6 s_store_sk->[ss_store_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk)) otherCondition=() build RFs:RF5 i_item_sk->[ss_item_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() ---------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number)) otherCondition=() build RFs:RF2 sr_customer_sk->[ss_customer_sk];RF3 sr_item_sk->[ss_item_sk];RF4 sr_ticket_number->[ss_ticket_number] +--------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 RF5 RF6 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((d1.d_moy = 4) and (d1.d_year = 1999)) ----------------------------------------PhysicalOlapScan[date_dim] ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_returns] +------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF0 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((d2.d_moy <= 10) and (d2.d_moy >= 4) and (d2.d_year = 1999)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query26.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query26.out index b495fa3ecf..575ba874cd 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query26.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query26.out @@ -8,15 +8,15 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[cs_item_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF2 p_promo_sk->[cs_promo_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = customer_demographics.cd_demo_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF0 cd_demo_sk->[cs_bill_cdemo_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 RF3 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((customer_demographics.cd_education_status = 'Unknown') and (customer_demographics.cd_gender = 'M') and (customer_demographics.cd_marital_status = 'W')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query27.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query27.out index 472fd8e410..65553f82be 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query27.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query27.out @@ -11,15 +11,15 @@ PhysicalResultSink ----------------hashAgg[LOCAL] ------------------PhysicalRepeat --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ss_item_sk] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------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] +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ss_store_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = customer_demographics.cd_demo_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF0 cd_demo_sk->[ss_cdemo_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF3 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((customer_demographics.cd_education_status = 'Secondary') and (customer_demographics.cd_gender = 'M') and (customer_demographics.cd_marital_status = 'W')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query29.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query29.out index 57a803bf43..9e2c83ef46 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query29.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query29.out @@ -8,27 +8,27 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk)) otherCondition=() build RFs:RF9 d_date_sk->[cs_sold_date_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF7 sr_customer_sk->[cs_bill_customer_sk];RF8 sr_item_sk->[cs_item_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_sales] +------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF7 RF8 RF9 ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF6 s_store_sk->[ss_store_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk)) otherCondition=() build RFs:RF5 i_item_sk->[ss_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() -----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number)) otherCondition=() build RFs:RF2 sr_customer_sk->[ss_customer_sk];RF3 sr_item_sk->[ss_item_sk];RF4 sr_ticket_number->[ss_ticket_number] +----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 RF5 RF6 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((d1.d_moy = 4) and (d1.d_year = 1998)) ------------------------------------------PhysicalOlapScan[date_dim] -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_returns] +--------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF0 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((d2.d_moy <= 7) and (d2.d_moy >= 4) and (d2.d_year = 1998)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query3.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query3.out index 4ac7e3fb97..7704d94620 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query3.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query3.out @@ -9,10 +9,10 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[store_sales] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((item.i_manufact_id = 816)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query30.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query30.out index d24ec81845..69a07ae9b7 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query30.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query30.out @@ -7,12 +7,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returning_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returning_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF1 ca_address_sk->[wr_returning_addr_sk] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[wr_returned_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_returns] +------------------------PhysicalOlapScan[web_returns] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((date_dim.d_year = 2000)) @@ -25,15 +25,15 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_state = ctr2.ctr_state))otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) +------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_state = ctr2.ctr_state)) otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ctr_customer_sk] ------------------PhysicalDistribute --------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[c_current_addr_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[customer] +------------------------PhysicalOlapScan[customer] apply RFs: RF2 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((customer_address.ca_state = 'AR')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query31.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query31.out index 0bfa56bdde..5a780fc56f 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query31.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query31.out @@ -6,12 +6,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------hashAgg[LOCAL] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF1 ca_address_sk->[ss_addr_sk] --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------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] +----------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((ss.d_year = 1999) and d_qoy IN (1, 2, 3)) @@ -25,12 +25,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 ca_address_sk->[ws_bill_addr_sk] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ws_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_sales] +------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 RF3 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((ws.d_year = 1999) and d_qoy IN (1, 2, 3)) @@ -43,20 +43,20 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------PhysicalQuickSort[LOCAL_SORT] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((ws1.ca_county = ws3.ca_county))otherCondition=((if((web_sales > 0.00), (cast(web_sales as DOUBLE) / cast(web_sales as DOUBLE)), NULL) > if((store_sales > 0.00), (cast(store_sales as DOUBLE) / cast(store_sales as DOUBLE)), NULL))) +--------------hashJoin[INNER_JOIN] hashCondition=((ws1.ca_county = ws3.ca_county)) otherCondition=((if((web_sales > 0.00), (cast(web_sales as DOUBLE) / cast(web_sales as DOUBLE)), NULL) > if((store_sales > 0.00), (cast(store_sales as DOUBLE) / cast(store_sales as DOUBLE)), NULL))) ----------------PhysicalDistribute ------------------PhysicalProject --------------------filter((ws3.d_qoy = 3) and (ws3.d_year = 1999)) ----------------------PhysicalCteConsumer ( cteId=CTEId#1 ) ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((ss2.ca_county = ss3.ca_county))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((ss2.ca_county = ss3.ca_county)) otherCondition=() --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((ss3.d_qoy = 3) and (ss3.d_year = 1999)) --------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ---------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ca_county = ws2.ca_county))otherCondition=((if((web_sales > 0.00), (cast(web_sales as DOUBLE) / cast(web_sales as DOUBLE)), NULL) > if((store_sales > 0.00), (cast(store_sales as DOUBLE) / cast(store_sales as DOUBLE)), NULL))) -----------------------hashJoin[INNER_JOIN] hashCondition=((ss1.ca_county = ws1.ca_county))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((ss1.ca_county = ss2.ca_county))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ca_county = ws2.ca_county)) otherCondition=((if((web_sales > 0.00), (cast(web_sales as DOUBLE) / cast(web_sales as DOUBLE)), NULL) > if((store_sales > 0.00), (cast(store_sales as DOUBLE) / cast(store_sales as DOUBLE)), NULL))) +----------------------hashJoin[INNER_JOIN] hashCondition=((ss1.ca_county = ws1.ca_county)) otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((ss1.ca_county = ss2.ca_county)) otherCondition=() --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((ss1.d_qoy = 1) and (ss1.d_year = 1999)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query32.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query32.out index be92e351c0..faa6c0fcb3 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query32.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query32.out @@ -12,11 +12,11 @@ PhysicalResultSink ------------------PhysicalQuickSort[LOCAL_SORT] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[cs_item_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((item.i_manufact_id = 722)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query33.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query33.out index 76b5fbc9ef..fe9227bafc 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query33.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query33.out @@ -13,15 +13,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ss_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[ss_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 3) and (date_dim.d_year = 2001)) @@ -31,10 +31,10 @@ PhysicalResultSink --------------------------------------filter((customer_address.ca_gmt_offset = -5.00)) ----------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute -------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id))otherCondition=() +------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() build RFs:RF0 i_manufact_id->[i_manufact_id] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[item] +------------------------------------PhysicalOlapScan[item] apply RFs: RF0 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Books')) @@ -44,15 +44,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF7 i_item_sk->[cs_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF6 ca_address_sk->[cs_bill_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 RF6 RF7 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 3) and (date_dim.d_year = 2001)) @@ -62,10 +62,10 @@ PhysicalResultSink --------------------------------------filter((customer_address.ca_gmt_offset = -5.00)) ----------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute -------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id))otherCondition=() +------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() build RFs:RF4 i_manufact_id->[i_manufact_id] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[item] +------------------------------------PhysicalOlapScan[item] apply RFs: RF4 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Books')) @@ -75,15 +75,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF11 i_item_sk->[ws_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF10 ca_address_sk->[ws_bill_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF9 d_date_sk->[ws_sold_date_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[web_sales] +------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF9 RF10 RF11 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 3) and (date_dim.d_year = 2001)) @@ -93,10 +93,10 @@ PhysicalResultSink --------------------------------------filter((customer_address.ca_gmt_offset = -5.00)) ----------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute -------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id))otherCondition=() +------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() build RFs:RF8 i_manufact_id->[i_manufact_id] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[item] +------------------------------------PhysicalOlapScan[item] apply RFs: RF8 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Books')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query34.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query34.out index 2865b49325..88706548bf 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query34.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query34.out @@ -5,21 +5,21 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalQuickSort[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 ss_customer_sk->[c_customer_sk] ------------PhysicalProject ---------------PhysicalOlapScan[customer] +--------------PhysicalOlapScan[customer] apply RFs: RF3 ------------PhysicalDistribute --------------filter((dn.cnt <= 20) and (dn.cnt >= 15)) ----------------hashAgg[GLOBAL] ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[ss_hdemo_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF0 s_store_sk->[ss_store_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[store_sales] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((store.s_county = 'Williamson County')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query35.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query35.out index ddab6d5db4..7530778f33 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query35.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query35.out @@ -9,12 +9,12 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ss_customer_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ss_sold_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_sales] +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF4 RF5 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year = 1999)) @@ -22,16 +22,16 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter(($c$1 OR $c$2)) ---------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk))otherCondition=() -----------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +--------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) otherCondition=() +----------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) otherCondition=() build RFs:RF3 cd_demo_sk->[c_current_cdemo_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[c_current_addr_sk] ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[customer] +--------------------------------------------PhysicalOlapScan[customer] apply RFs: RF2 RF3 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------PhysicalOlapScan[customer_address] @@ -40,18 +40,18 @@ PhysicalResultSink --------------------------------------PhysicalOlapScan[customer_demographics] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[web_sales] +--------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((date_dim.d_qoy < 4) 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=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year = 1999)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query36.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query36.out index 3bdfcf5a61..5fff3bf11a 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query36.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query36.out @@ -15,13 +15,13 @@ PhysicalResultSink ------------------------hashAgg[LOCAL] --------------------------PhysicalRepeat ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ss_item_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF0 s_store_sk->[ss_store_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((store.s_state = 'TN')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query37.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query37.out index 73d039c614..0a59006f1b 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query37.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query37.out @@ -8,17 +8,17 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[cs_item_sk] ------------------PhysicalProject ---------------------PhysicalOlapScan[catalog_sales] +--------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = inventory.inv_date_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = inventory.inv_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[inv_date_sk] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[inv_item_sk] ----------------------------PhysicalProject ------------------------------filter((inventory.inv_quantity_on_hand <= 500) and (inventory.inv_quantity_on_hand >= 100)) ---------------------------------PhysicalOlapScan[inventory] +--------------------------------PhysicalOlapScan[inventory] apply RFs: RF0 RF1 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((item.i_current_price <= 59.00) and (item.i_current_price >= 29.00) and i_manufact_id IN (705, 742, 777, 944)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query38.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query38.out index ce02d06e17..42aba0dee4 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query38.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query38.out @@ -12,12 +12,12 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF1 c_customer_sk->[ss_customer_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_month_seq <= 1200) and (date_dim.d_month_seq >= 1189)) @@ -29,12 +29,12 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[cs_bill_customer_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[cs_sold_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[catalog_sales] +----------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_month_seq <= 1200) and (date_dim.d_month_seq >= 1189)) @@ -46,12 +46,12 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ws_bill_customer_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_sales] +----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 RF5 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_month_seq <= 1200) and (date_dim.d_month_seq >= 1189)) 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 f18a957943..c9394b9b60 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 @@ -8,11 +8,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk))otherCondition=() +----------------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=() -----------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------PhysicalOlapScan[inventory] +--------------------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)) @@ -28,7 +28,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------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=() +------------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.d_moy = 1)) @@ -47,11 +47,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk))otherCondition=() +----------------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=() -----------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------PhysicalOlapScan[inventory] +--------------------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)) @@ -67,7 +67,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------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=() +------------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)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query4.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query4.out index 195492c087..ef37699a21 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query4.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query4.out @@ -8,11 +8,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF1 c_customer_sk->[ss_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------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] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1999, 2000)) @@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = catalog_sales.cs_bill_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = catalog_sales.cs_bill_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[cs_bill_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[cs_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_sales] +------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1999, 2000)) @@ -42,11 +42,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ws_bill_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_sales] +------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 RF5 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1999, 2000)) @@ -59,14 +59,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id))otherCondition=((if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL) > if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL))) +------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id)) otherCondition=((if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL) > if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL))) --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id)) otherCondition=() ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_c_secyear.customer_id))otherCondition=((if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL) > if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL))) +--------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_c_secyear.customer_id)) otherCondition=((if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL) > if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL))) ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_c_firstyear.customer_id))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id)) otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_c_firstyear.customer_id)) otherCondition=() ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((t_s_firstyear.dyear = 1999) and (t_s_firstyear.sale_type = 's') and (t_s_firstyear.year_total > 0.000000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query40.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query40.out index 4d33ee5ecc..7ede017b80 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query40.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query40.out @@ -8,15 +8,15 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF4 w_warehouse_sk->[cs_warehouse_sk] ------------------PhysicalProject ---------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number))otherCondition=() +--------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number)) otherCondition=() build RFs:RF2 cs_order_number->[cr_order_number];RF3 cs_item_sk->[cr_item_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_returns] -----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk))otherCondition=() +------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF2 RF3 +----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[cs_item_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[catalog_sales] +----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF4 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((item.i_current_price <= 1.49) and (item.i_current_price >= 0.99)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query41.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query41.out index fd6198a810..52d41d2818 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query41.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query41.out @@ -8,10 +8,10 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((item.i_manufact = i1.i_manufact))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((item.i_manufact = i1.i_manufact)) otherCondition=() build RFs:RF0 i_manufact->[i_manufact] ------------------PhysicalProject --------------------filter((i1.i_manufact_id <= 744) and (i1.i_manufact_id >= 704)) -----------------------PhysicalOlapScan[item] +----------------------PhysicalOlapScan[item] apply RFs: RF0 ------------------PhysicalDistribute --------------------PhysicalProject ----------------------filter((item_cnt > 0)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query42.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query42.out index 4b459677a0..8382ca8b1f 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query42.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query42.out @@ -8,10 +8,10 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] --------------------PhysicalProject -----------------------PhysicalOlapScan[store_sales] +----------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((item.i_manager_id = 1)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query43.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query43.out index 2de89e8dfb..445a381983 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query43.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query43.out @@ -8,11 +8,11 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ss_store_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[store_sales] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((date_dim.d_year = 2000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query44.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query44.out index 2cdf10e959..e0a75dd364 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query44.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query44.out @@ -5,12 +5,12 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((asceding.rnk = descending.rnk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((asceding.rnk = descending.rnk)) otherCondition=() ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((i1.i_item_sk = asceding.item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((i1.i_item_sk = asceding.item_sk)) otherCondition=() build RFs:RF1 item_sk->[i_item_sk] ------------------PhysicalProject ---------------------PhysicalOlapScan[item] +--------------------PhysicalOlapScan[item] apply RFs: RF1 ------------------PhysicalDistribute --------------------PhysicalProject ----------------------filter((rnk < 11)) @@ -39,9 +39,9 @@ PhysicalResultSink ------------------------------------------------------filter((store_sales.ss_store_sk = 4) and ss_hdemo_sk IS NULL) --------------------------------------------------------PhysicalOlapScan[store_sales] ------------PhysicalDistribute ---------------hashJoin[INNER_JOIN] hashCondition=((i2.i_item_sk = descending.item_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((i2.i_item_sk = descending.item_sk)) otherCondition=() build RFs:RF0 item_sk->[i_item_sk] ----------------PhysicalProject -------------------PhysicalOlapScan[item] +------------------PhysicalOlapScan[item] apply RFs: RF0 ----------------PhysicalDistribute ------------------PhysicalProject --------------------filter((rnk < 11)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query45.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query45.out index f03f89c964..1e60bc0af4 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query45.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query45.out @@ -9,26 +9,26 @@ PhysicalResultSink ------------hashAgg[LOCAL] --------------PhysicalProject ----------------filter((substring(ca_zip, 1, 5) IN ('80348', '81792', '83405', '85392', '85460', '85669', '86197', '86475', '88274') OR $c$1)) -------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ws_item_sk] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF2 c_customer_sk->[ws_bill_customer_sk] ------------------------------PhysicalDistribute ---------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[web_sales] +------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 RF2 RF3 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_qoy = 1) and (date_dim.d_year = 2000)) ----------------------------------------PhysicalOlapScan[date_dim] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[c_current_addr_sk] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[customer] +----------------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------PhysicalOlapScan[customer_address] diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query46.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query46.out index a8ffcefc85..fea7c08e02 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query46.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query46.out @@ -5,26 +5,26 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = current_addr.ca_address_sk))otherCondition=(( not (ca_city = bought_city))) +----------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = current_addr.ca_address_sk)) otherCondition=(( not (ca_city = bought_city))) build RFs:RF5 ca_address_sk->[c_current_addr_sk] ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF4 ss_customer_sk->[c_customer_sk] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------PhysicalOlapScan[customer] +----------------------PhysicalOlapScan[customer] apply RFs: RF4 RF5 ------------------PhysicalDistribute --------------------PhysicalProject ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 ca_address_sk->[ss_addr_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[ss_hdemo_sk] ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF0 s_store_sk->[ss_store_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF3 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter(s_city IN ('Fairview', 'Midway')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query47.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query47.out index e20ba37e0e..faf2b7b248 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query47.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query47.out @@ -13,12 +13,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ss_item_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ss_store_sk] +--------------------------------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] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((((date_dim.d_year = 2000) OR ((date_dim.d_year = 1999) AND (date_dim.d_moy = 12))) OR ((date_dim.d_year = 2001) AND (date_dim.d_moy = 1)))) @@ -35,8 +35,8 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------PhysicalTopN[LOCAL_SORT] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((v1.i_brand = v1_lag.i_brand) and (v1.i_category = v1_lag.i_category) and (v1.rn = expr_(rn + 1)) and (v1.s_company_name = v1_lag.s_company_name) and (v1.s_store_name = v1_lag.s_store_name))otherCondition=() -----------------hashJoin[INNER_JOIN] hashCondition=((v1.i_brand = v1_lead.i_brand) and (v1.i_category = v1_lead.i_category) and (v1.rn = expr_(rn - 1)) and (v1.s_company_name = v1_lead.s_company_name) and (v1.s_store_name = v1_lead.s_store_name))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((v1.i_brand = v1_lag.i_brand) and (v1.i_category = v1_lag.i_category) and (v1.rn = expr_(rn + 1)) and (v1.s_company_name = v1_lag.s_company_name) and (v1.s_store_name = v1_lag.s_store_name)) otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((v1.i_brand = v1_lead.i_brand) and (v1.i_category = v1_lead.i_category) and (v1.rn = expr_(rn - 1)) and (v1.s_company_name = v1_lead.s_company_name) and (v1.s_store_name = v1_lead.s_store_name)) otherCondition=() ------------------PhysicalDistribute --------------------PhysicalProject ----------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query48.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query48.out index 6c068c1575..2a25a218c2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query48.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query48.out @@ -5,17 +5,17 @@ PhysicalResultSink ----PhysicalDistribute ------hashAgg[LOCAL] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF3 s_store_sk->[ss_store_sk] ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------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 ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=((((ca_state IN ('ND', 'NY', 'SD') AND ((store_sales.ss_net_profit >= 0.00) AND (store_sales.ss_net_profit <= 2000.00))) OR (ca_state IN ('GA', 'KS', 'MD') AND ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 3000.00)))) OR (ca_state IN ('CO', 'MN', 'NC') AND ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 25000.00))))) +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=((((ca_state IN ('ND', 'NY', 'SD') AND ((store_sales.ss_net_profit >= 0.00) AND (store_sales.ss_net_profit <= 2000.00))) OR (ca_state IN ('GA', 'KS', 'MD') AND ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 3000.00)))) OR (ca_state IN ('CO', 'MN', 'NC') AND ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 25000.00))))) build RFs:RF1 ca_address_sk->[ss_addr_sk] ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk))otherCondition=((((((customer_demographics.cd_marital_status = 'S') AND (customer_demographics.cd_education_status = 'Secondary')) AND ((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00))) OR (((customer_demographics.cd_marital_status = 'M') AND (customer_demographics.cd_education_status = '2 yr Degree')) AND ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00)))) OR (((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = 'Advanced Degree')) AND ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00))))) +------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) otherCondition=((((((customer_demographics.cd_marital_status = 'S') AND (customer_demographics.cd_education_status = 'Secondary')) AND ((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00))) OR (((customer_demographics.cd_marital_status = 'M') AND (customer_demographics.cd_education_status = '2 yr Degree')) AND ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00)))) OR (((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = 'Advanced Degree')) AND ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00))))) build RFs:RF0 cd_demo_sk->[ss_cdemo_sk] --------------------------PhysicalProject ----------------------------filter(((((store_sales.ss_net_profit >= 0.00) AND (store_sales.ss_net_profit <= 2000.00)) OR ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 3000.00))) OR ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 25000.00))) and ((((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00)))) -------------------------------PhysicalOlapScan[store_sales] +------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF3 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter(((((customer_demographics.cd_marital_status = 'S') AND (customer_demographics.cd_education_status = 'Secondary')) OR ((customer_demographics.cd_marital_status = 'M') AND (customer_demographics.cd_education_status = '2 yr Degree'))) OR ((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = 'Advanced Degree')))) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query49.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query49.out index 079a67186e..ab1abc7bc9 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query49.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query49.out @@ -22,14 +22,14 @@ PhysicalResultSink --------------------------------------PhysicalDistribute ----------------------------------------hashAgg[LOCAL] ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((ws.ws_item_sk = wr.wr_item_sk) and (ws.ws_order_number = wr.wr_order_number))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((ws.ws_item_sk = wr.wr_item_sk) and (ws.ws_order_number = wr.wr_order_number)) otherCondition=() build RFs:RF1 ws_order_number->[wr_order_number];RF2 ws_item_sk->[wr_item_sk] ----------------------------------------------PhysicalProject ------------------------------------------------filter((wr.wr_return_amt > 10000.00)) ---------------------------------------------------PhysicalOlapScan[web_returns] -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((ws.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------------PhysicalOlapScan[web_returns] apply RFs: RF1 RF2 +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((ws.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk] ------------------------------------------------PhysicalProject --------------------------------------------------filter((ws.ws_net_paid > 0.00) and (ws.ws_net_profit > 1.00) and (ws.ws_quantity > 0)) -----------------------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject ----------------------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 1998)) @@ -48,14 +48,14 @@ PhysicalResultSink --------------------------------------PhysicalDistribute ----------------------------------------hashAgg[LOCAL] ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs.cs_item_sk = cr.cr_item_sk) and (cs.cs_order_number = cr.cr_order_number))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs.cs_item_sk = cr.cr_item_sk) and (cs.cs_order_number = cr.cr_order_number)) otherCondition=() build RFs:RF4 cs_order_number->[cr_order_number];RF5 cs_item_sk->[cr_item_sk] ----------------------------------------------PhysicalProject ------------------------------------------------filter((cr.cr_return_amount > 10000.00)) ---------------------------------------------------PhysicalOlapScan[catalog_returns] -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF4 RF5 +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF3 d_date_sk->[cs_sold_date_sk] ------------------------------------------------PhysicalProject --------------------------------------------------filter((cs.cs_net_paid > 0.00) and (cs.cs_net_profit > 1.00) and (cs.cs_quantity > 0)) -----------------------------------------------------PhysicalOlapScan[catalog_sales] +----------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF3 ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject ----------------------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 1998)) @@ -74,14 +74,14 @@ PhysicalResultSink --------------------------------------PhysicalDistribute ----------------------------------------hashAgg[LOCAL] ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((sts.ss_item_sk = sr.sr_item_sk) and (sts.ss_ticket_number = sr.sr_ticket_number))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((sts.ss_item_sk = sr.sr_item_sk) and (sts.ss_ticket_number = sr.sr_ticket_number)) otherCondition=() build RFs:RF7 ss_ticket_number->[sr_ticket_number];RF8 ss_item_sk->[sr_item_sk] ----------------------------------------------PhysicalProject ------------------------------------------------filter((sr.sr_return_amt > 10000.00)) ---------------------------------------------------PhysicalOlapScan[store_returns] -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((sts.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF7 RF8 +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((sts.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[ss_sold_date_sk] ------------------------------------------------PhysicalProject --------------------------------------------------filter((sts.ss_net_paid > 0.00) and (sts.ss_net_profit > 1.00) and (sts.ss_quantity > 0)) -----------------------------------------------------PhysicalOlapScan[store_sales] +----------------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF6 ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject ----------------------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 1998)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query5.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query5.out index 2f84377c34..73a6975794 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query5.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query5.out @@ -15,13 +15,13 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.store_sk = store.s_store_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.store_sk = store.s_store_sk)) otherCondition=() --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk,sr_returned_date_sk] ------------------------------------PhysicalUnion --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------PhysicalOlapScan[store_returns] @@ -37,14 +37,14 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.page_sk = catalog_page.cp_catalog_page_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.page_sk = catalog_page.cp_catalog_page_sk)) otherCondition=() --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk,cr_returned_date_sk] --------------------------------------PhysicalUnion ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF1 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------PhysicalOlapScan[catalog_returns] @@ -60,18 +60,18 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.wsr_web_site_sk = web_site.web_site_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.wsr_web_site_sk = web_site.web_site_sk)) otherCondition=() --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk,wr_returned_date_sk] ------------------------------------PhysicalUnion --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[web_sales] +------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_item_sk = web_sales.ws_item_sk) and (web_returns.wr_order_number = web_sales.ws_order_number))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_item_sk = web_sales.ws_item_sk) and (web_returns.wr_order_number = web_sales.ws_order_number)) otherCondition=() build RFs:RF2 wr_item_sk->[ws_item_sk];RF3 wr_order_number->[ws_order_number] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 RF3 --------------------------------------------PhysicalProject ----------------------------------------------PhysicalOlapScan[web_returns] ------------------------------------PhysicalDistribute diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query50.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query50.out index b1f5db0557..43aca8f6d6 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query50.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query50.out @@ -8,16 +8,16 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF5 s_store_sk->[ss_store_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ss_sold_date_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number)) otherCondition=() build RFs:RF1 sr_customer_sk->[ss_customer_sk];RF2 sr_item_sk->[ss_item_sk];RF3 sr_ticket_number->[ss_ticket_number] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_sales] ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk))otherCondition=() +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 RF5 +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[store_returns] +------------------------------PhysicalOlapScan[store_returns] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((d2.d_moy = 8) and (d2.d_year = 2001)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query51.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query51.out index 2d409b1970..385c03c80a 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query51.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query51.out @@ -10,7 +10,7 @@ PhysicalResultSink --------------PhysicalQuickSort[LOCAL_SORT] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[FULL_OUTER_JOIN] hashCondition=((web.d_date = store.d_date) and (web.item_sk = store.item_sk))otherCondition=() +--------------------hashJoin[FULL_OUTER_JOIN] hashCondition=((web.d_date = store.d_date) and (web.item_sk = store.item_sk)) otherCondition=() ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------PhysicalWindow @@ -21,9 +21,9 @@ PhysicalResultSink ------------------------------------PhysicalDistribute --------------------------------------hashAgg[LOCAL] ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject ------------------------------------------------filter((date_dim.d_month_seq <= 1223) and (date_dim.d_month_seq >= 1212)) @@ -38,9 +38,9 @@ PhysicalResultSink ------------------------------------PhysicalDistribute --------------------------------------hashAgg[LOCAL] ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------------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] +----------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject ------------------------------------------------filter((date_dim.d_month_seq <= 1223) and (date_dim.d_month_seq >= 1212)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query52.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query52.out index 3a03bb3261..3486b154d0 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query52.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query52.out @@ -9,10 +9,10 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[store_sales] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((item.i_manager_id = 1)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query53.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query53.out index a99eb55b98..2ff15ac3cd 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query53.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query53.out @@ -14,14 +14,14 @@ PhysicalResultSink ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'reference', 'self-help')) AND i_brand IN ('exportiunivamalg #9', 'scholaramalgamalg #14', 'scholaramalgamalg #7', 'scholaramalgamalg #9')) OR ((i_category IN ('Men', 'Music', 'Women') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants')) AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query54.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query54.out index d90cf7a7ed..333f4817da 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query54.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query54.out @@ -13,12 +13,12 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 ss_sold_date_sk->[d_date_sk] ----------------------------PhysicalProject ------------------------------NestedLoopJoin[INNER_JOIN](cast(d_month_seq as BIGINT) <= (d_month_seq + 3)) --------------------------------NestedLoopJoin[INNER_JOIN](cast(d_month_seq as BIGINT) >= (d_month_seq + 1)) ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[date_dim] +------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF6 ----------------------------------PhysicalDistribute ------------------------------------PhysicalAssertNumRows --------------------------------------PhysicalDistribute @@ -39,33 +39,33 @@ PhysicalResultSink ------------------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((my_customers.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((my_customers.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ss_customer_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF5 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_county = store.s_county) and (customer_address.ca_state = store.s_state))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_county = store.s_county) and (customer_address.ca_state = store.s_state)) otherCondition=() build RFs:RF3 s_county->[ca_county];RF4 s_state->[ca_state] ----------------------------------------PhysicalDistribute -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((my_customers.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((my_customers.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF2 c_current_addr_sk->[ca_address_sk] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[customer_address] +----------------------------------------------PhysicalOlapScan[customer_address] apply RFs: RF2 RF3 RF4 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject ------------------------------------------------hashAgg[LOCAL] --------------------------------------------------PhysicalProject -----------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = cs_or_ws_sales.customer_sk))otherCondition=() +----------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = cs_or_ws_sales.customer_sk)) otherCondition=() build RFs:RF1 customer_sk->[c_customer_sk] ------------------------------------------------------PhysicalDistribute --------------------------------------------------------PhysicalProject -----------------------------------------------------------PhysicalOlapScan[customer] +----------------------------------------------------------PhysicalOlapScan[customer] apply RFs: RF1 ------------------------------------------------------PhysicalDistribute --------------------------------------------------------PhysicalProject -----------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs_or_ws_sales.sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs_or_ws_sales.sold_date_sk = date_dim.d_date_sk)) otherCondition=() ------------------------------------------------------------PhysicalProject ---------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs_or_ws_sales.item_sk = item.i_item_sk))otherCondition=() +--------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs_or_ws_sales.item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[cs_item_sk,ws_item_sk] ----------------------------------------------------------------PhysicalUnion ------------------------------------------------------------------PhysicalDistribute --------------------------------------------------------------------PhysicalProject -----------------------------------------------------------------------PhysicalOlapScan[catalog_sales] +----------------------------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 ------------------------------------------------------------------PhysicalDistribute --------------------------------------------------------------------PhysicalProject ----------------------------------------------------------------------PhysicalOlapScan[web_sales] diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query55.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query55.out index 643871af39..f961bf95b1 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query55.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query55.out @@ -9,10 +9,10 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[store_sales] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((item.i_manager_id = 52)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query56.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query56.out index 93d4f8ffcc..4db37a22b7 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query56.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query56.out @@ -13,22 +13,22 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 ca_address_sk->[ss_addr_sk] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ss_item_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((date_dim.d_moy = 3) and (date_dim.d_year = 2000)) ------------------------------------------PhysicalOlapScan[date_dim] --------------------------------PhysicalDistribute -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF0 i_item_id->[i_item_id] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[item] +----------------------------------------PhysicalOlapScan[item] apply RFs: RF0 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter(i_color IN ('orchid', 'pink', 'powder')) @@ -42,22 +42,22 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF7 ca_address_sk->[cs_bill_addr_sk] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF6 i_item_sk->[cs_item_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------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] +--------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 RF6 RF7 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((date_dim.d_moy = 3) and (date_dim.d_year = 2000)) ------------------------------------------PhysicalOlapScan[date_dim] --------------------------------PhysicalDistribute -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF4 i_item_id->[i_item_id] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[item] +----------------------------------------PhysicalOlapScan[item] apply RFs: RF4 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter(i_color IN ('orchid', 'pink', 'powder')) @@ -71,25 +71,25 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF11 ws_bill_addr_sk->[ca_address_sk] ----------------------------PhysicalProject ------------------------------filter((customer_address.ca_gmt_offset = -6.00)) ---------------------------------PhysicalOlapScan[customer_address] +--------------------------------PhysicalOlapScan[customer_address] apply RFs: RF11 ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF10 i_item_sk->[ws_item_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF9 d_date_sk->[ws_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[web_sales] +--------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF9 RF10 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((date_dim.d_moy = 3) and (date_dim.d_year = 2000)) ------------------------------------------PhysicalOlapScan[date_dim] --------------------------------PhysicalDistribute -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF8 i_item_id->[i_item_id] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[item] +----------------------------------------PhysicalOlapScan[item] apply RFs: RF8 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter(i_color IN ('orchid', 'pink', 'powder')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query57.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query57.out index bc7b55585b..2ff9f9502e 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query57.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query57.out @@ -13,12 +13,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[cs_item_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((call_center.cc_call_center_sk = catalog_sales.cs_call_center_sk))otherCondition=() ---------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((call_center.cc_call_center_sk = catalog_sales.cs_call_center_sk)) otherCondition=() build RFs:RF1 cc_call_center_sk->[cs_call_center_sk] +--------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((((date_dim.d_year = 2001) OR ((date_dim.d_year = 2000) AND (date_dim.d_moy = 12))) OR ((date_dim.d_year = 2002) AND (date_dim.d_moy = 1)))) @@ -35,8 +35,8 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------PhysicalTopN[LOCAL_SORT] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((v1.cc_name = v1_lag.cc_name) and (v1.i_brand = v1_lag.i_brand) and (v1.i_category = v1_lag.i_category) and (v1.rn = expr_(rn + 1)))otherCondition=() -----------------hashJoin[INNER_JOIN] hashCondition=((v1.cc_name = v1_lead.cc_name) and (v1.i_brand = v1_lead.i_brand) and (v1.i_category = v1_lead.i_category) and (v1.rn = expr_(rn - 1)))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((v1.cc_name = v1_lag.cc_name) and (v1.i_brand = v1_lag.i_brand) and (v1.i_category = v1_lag.i_category) and (v1.rn = expr_(rn + 1))) otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((v1.cc_name = v1_lead.cc_name) and (v1.i_brand = v1_lead.i_brand) and (v1.i_category = v1_lead.i_category) and (v1.rn = expr_(rn - 1))) otherCondition=() ------------------PhysicalDistribute --------------------PhysicalProject ----------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query58.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query58.out index 055f2e5f39..d8287208a5 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query58.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query58.out @@ -6,27 +6,27 @@ PhysicalResultSink ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((ss_items.item_id = ws_items.item_id))otherCondition=((cast(cs_item_rev as DOUBLE) <= cast((1.1 * ws_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) <= cast((1.1 * ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) >= cast((0.9 * ws_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) <= cast((1.1 * cs_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) <= cast((1.1 * ss_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) >= cast((0.9 * cs_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) >= cast((0.9 * ss_item_rev) as DOUBLE))) +------------hashJoin[INNER_JOIN] hashCondition=((ss_items.item_id = ws_items.item_id)) otherCondition=((cast(cs_item_rev as DOUBLE) <= cast((1.1 * ws_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) <= cast((1.1 * ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) >= cast((0.9 * ws_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) <= cast((1.1 * cs_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) <= cast((1.1 * ss_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) >= cast((0.9 * cs_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) >= cast((0.9 * ss_item_rev) as DOUBLE))) build RFs:RF13 item_id->[i_item_id] --------------PhysicalProject ----------------hashAgg[GLOBAL] ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF12 i_item_sk->[ws_item_sk] --------------------------PhysicalDistribute -----------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------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] +--------------------------------PhysicalOlapScan[web_sales] apply RFs: RF11 RF12 ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF10 d_date->[d_date] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[date_dim] +--------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF10 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF9 d_week_seq->[d_week_seq] ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[date_dim] +--------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF9 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalAssertNumRows ----------------------------------------------PhysicalDistribute @@ -35,29 +35,29 @@ PhysicalResultSink ----------------------------------------------------PhysicalOlapScan[date_dim] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[item] +------------------------------PhysicalOlapScan[item] apply RFs: RF13 --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((ss_items.item_id = cs_items.item_id))otherCondition=((cast(cs_item_rev as DOUBLE) <= cast((1.1 * ss_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * ss_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) <= cast((1.1 * cs_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) >= cast((0.9 * cs_item_rev) as DOUBLE))) +----------------hashJoin[INNER_JOIN] hashCondition=((ss_items.item_id = cs_items.item_id)) otherCondition=((cast(cs_item_rev as DOUBLE) <= cast((1.1 * ss_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * ss_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) <= cast((1.1 * cs_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) >= cast((0.9 * cs_item_rev) as DOUBLE))) build RFs:RF8 item_id->[i_item_id] ------------------PhysicalProject --------------------hashAgg[GLOBAL] ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF7 i_item_sk->[ss_item_sk] ------------------------------PhysicalDistribute ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[ss_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF6 RF7 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +--------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF5 d_date->[d_date] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[date_dim] +------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF5 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF4 d_week_seq->[d_week_seq] ----------------------------------------------PhysicalProject -------------------------------------------------PhysicalOlapScan[date_dim] +------------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF4 ----------------------------------------------PhysicalDistribute ------------------------------------------------PhysicalAssertNumRows --------------------------------------------------PhysicalDistribute @@ -66,27 +66,27 @@ PhysicalResultSink --------------------------------------------------------PhysicalOlapScan[date_dim] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[item] +----------------------------------PhysicalOlapScan[item] apply RFs: RF8 ------------------PhysicalProject --------------------hashAgg[GLOBAL] ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[cs_item_sk] ------------------------------PhysicalDistribute ---------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[cs_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +--------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF1 d_date->[d_date] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[date_dim] +------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF1 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF0 d_week_seq->[d_week_seq] ----------------------------------------------PhysicalProject -------------------------------------------------PhysicalOlapScan[date_dim] +------------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF0 ----------------------------------------------PhysicalDistribute ------------------------------------------------PhysicalAssertNumRows --------------------------------------------------PhysicalDistribute diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query59.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query59.out index df2399cf4a..e0426c9fb2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query59.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query59.out @@ -6,9 +6,9 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------hashAgg[LOCAL] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk] --------------PhysicalProject -----------------PhysicalOlapScan[store_sales] +----------------PhysicalOlapScan[store_sales] apply RFs: RF0 --------------PhysicalDistribute ----------------PhysicalProject ------------------PhysicalOlapScan[date_dim] @@ -18,12 +18,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------PhysicalTopN[LOCAL_SORT] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(d_week_seq2 - 52)) and (y.s_store_id1 = x.s_store_id2))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(d_week_seq2 - 52)) and (y.s_store_id1 = x.s_store_id2)) otherCondition=() ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((wss.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((wss.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF4 s_store_sk->[ss_store_sk] ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_week_seq = d_week_seq1))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_week_seq = d_week_seq1)) otherCondition=() build RFs:RF3 d_week_seq->[d_week_seq] --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) @@ -36,10 +36,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------------PhysicalOlapScan[store] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((wss.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((wss.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_week_seq = d_week_seq2))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_week_seq = d_week_seq2)) otherCondition=() build RFs:RF1 d_week_seq->[d_week_seq] ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query6.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query6.out index a6495f7e2d..8c12b06b1c 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query6.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query6.out @@ -10,19 +10,19 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((c.c_customer_sk = s.ss_customer_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((c.c_customer_sk = s.ss_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ss_customer_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((s.ss_item_sk = i.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((s.ss_item_sk = i.i_item_sk)) otherCondition=() build RFs:RF4 i_item_sk->[ss_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((s.ss_sold_date_sk = d.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((s.ss_sold_date_sk = d.d_date_sk)) otherCondition=() build RFs:RF3 d_date_sk->[ss_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF3 RF4 RF5 ----------------------------------PhysicalDistribute -------------------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_month_seq = date_dim.d_month_seq))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_month_seq = date_dim.d_month_seq)) otherCondition=() build RFs:RF2 d_month_seq->[d_month_seq] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF2 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalAssertNumRows ------------------------------------------PhysicalDistribute @@ -33,9 +33,9 @@ PhysicalResultSink ----------------------------------------------------filter((date_dim.d_moy = 3) and (date_dim.d_year = 2002)) ------------------------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((j.i_category = i.i_category))otherCondition=((cast(i_current_price as DECIMALV3(38, 5)) > (1.2 * avg(cast(i_current_price as DECIMALV3(9, 4)))))) +------------------------------hashJoin[INNER_JOIN] hashCondition=((j.i_category = i.i_category)) otherCondition=((cast(i_current_price as DECIMALV3(38, 5)) > (1.2 * avg(cast(i_current_price as DECIMALV3(9, 4)))))) build RFs:RF1 i_category->[i_category] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[item] +----------------------------------PhysicalOlapScan[item] apply RFs: RF1 --------------------------------PhysicalDistribute ----------------------------------hashAgg[GLOBAL] ------------------------------------PhysicalDistribute @@ -44,10 +44,10 @@ PhysicalResultSink ------------------------------------------PhysicalOlapScan[item] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((a.ca_address_sk = c.c_current_addr_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((a.ca_address_sk = c.c_current_addr_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[c_current_addr_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[customer] +--------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalOlapScan[customer_address] diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query60.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query60.out index 88cc814f15..85fd4c9358 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query60.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query60.out @@ -13,15 +13,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ss_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[ss_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 10) and (date_dim.d_year = 2000)) @@ -31,10 +31,10 @@ PhysicalResultSink --------------------------------------filter((customer_address.ca_gmt_offset = -5.00)) ----------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute -------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF0 i_item_id->[i_item_id] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[item] +------------------------------------PhysicalOlapScan[item] apply RFs: RF0 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Jewelry')) @@ -44,15 +44,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF7 i_item_sk->[cs_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF6 ca_address_sk->[cs_bill_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 RF6 RF7 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 10) and (date_dim.d_year = 2000)) @@ -62,10 +62,10 @@ PhysicalResultSink --------------------------------------filter((customer_address.ca_gmt_offset = -5.00)) ----------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute -------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF4 i_item_id->[i_item_id] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[item] +------------------------------------PhysicalOlapScan[item] apply RFs: RF4 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Jewelry')) @@ -75,15 +75,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF11 i_item_sk->[ws_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF10 ca_address_sk->[ws_bill_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF9 d_date_sk->[ws_sold_date_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[web_sales] +------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF9 RF10 RF11 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 10) and (date_dim.d_year = 2000)) @@ -93,10 +93,10 @@ PhysicalResultSink --------------------------------------filter((customer_address.ca_gmt_offset = -5.00)) ----------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute -------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF8 i_item_id->[i_item_id] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[item] +------------------------------------PhysicalOlapScan[item] apply RFs: RF8 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Jewelry')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query61.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query61.out index 7ca0aac486..8ae207e508 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query61.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query61.out @@ -9,25 +9,25 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF10 c_current_addr_sk->[ca_address_sk] --------------------PhysicalProject ----------------------filter((customer_address.ca_gmt_offset = -7.00)) -------------------------PhysicalOlapScan[customer_address] +------------------------PhysicalOlapScan[customer_address] apply RFs: RF10 --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF9 ss_customer_sk->[c_customer_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[customer] +------------------------------PhysicalOlapScan[customer] apply RFs: RF9 --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF8 s_store_sk->[ss_store_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk))otherCondition=() -------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF7 p_promo_sk->[ss_promo_sk] +------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF6 i_item_sk->[ss_item_sk] +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF5 d_date_sk->[ss_sold_date_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF5 RF6 RF7 RF8 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 12) and (date_dim.d_year = 2000)) @@ -49,15 +49,15 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF4 s_store_sk->[ss_store_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ss_customer_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ss_item_sk] +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_moy = 12) and (date_dim.d_year = 2000)) @@ -67,10 +67,10 @@ PhysicalResultSink ------------------------------------filter((item.i_category = 'Home')) --------------------------------------PhysicalOlapScan[item] --------------------------PhysicalDistribute -----------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[c_current_addr_sk] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[customer] +----------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((customer_address.ca_gmt_offset = -7.00)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query62.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query62.out index 684b83de6a..38382a7656 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query62.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query62.out @@ -8,13 +8,13 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF3 w_warehouse_sk->[ws_warehouse_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_mode_sk = ship_mode.sm_ship_mode_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_site_sk = web_site.web_site_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_mode_sk = ship_mode.sm_ship_mode_sk)) otherCondition=() build RFs:RF2 sm_ship_mode_sk->[ws_ship_mode_sk] +----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() build RFs:RF1 web_site_sk->[ws_web_site_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_ship_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[web_sales] +----------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 RF2 RF3 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_month_seq <= 1234) and (date_dim.d_month_seq >= 1223)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query63.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query63.out index 5f35925286..a33e5cd4cd 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query63.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query63.out @@ -14,14 +14,14 @@ PhysicalResultSink ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'reference', 'self-help')) AND i_brand IN ('exportiunivamalg #9', 'scholaramalgamalg #14', 'scholaramalgamalg #7', 'scholaramalgamalg #9')) OR ((i_category IN ('Men', 'Music', 'Women') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants')) AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query64.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query64.out index bbdaf2a791..35ec25a753 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query64.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query64.out @@ -7,29 +7,29 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_shipto_date_sk = d3.d_date_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_shipto_date_sk = d3.d_date_sk)) otherCondition=() build RFs:RF19 d_date_sk->[c_first_shipto_date_sk] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=(( not (cd_marital_status = cd_marital_status))) +------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=(( not (cd_marital_status = cd_marital_status))) build RFs:RF18 ss_customer_sk->[c_customer_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = ad2.ca_address_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = ad2.ca_address_sk)) otherCondition=() build RFs:RF17 ca_address_sk->[c_current_addr_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_cdemo_sk = cd2.cd_demo_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_cdemo_sk = cd2.cd_demo_sk)) otherCondition=() build RFs:RF16 cd_demo_sk->[c_current_cdemo_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_sales_date_sk = d2.d_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_sales_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF15 d_date_sk->[c_first_sales_date_sk] --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_hdemo_sk = hd2.hd_demo_sk))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_hdemo_sk = hd2.hd_demo_sk)) otherCondition=() build RFs:RF14 hd_demo_sk->[c_current_hdemo_sk] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[customer] +----------------------------------------------PhysicalOlapScan[customer] apply RFs: RF14 RF15 RF16 RF17 RF18 RF19 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject -------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((hd2.hd_income_band_sk = ib2.ib_income_band_sk))otherCondition=() +------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((hd2.hd_income_band_sk = ib2.ib_income_band_sk)) otherCondition=() build RFs:RF13 ib_income_band_sk->[hd_income_band_sk] --------------------------------------------------PhysicalDistribute ----------------------------------------------------PhysicalProject -------------------------------------------------------PhysicalOlapScan[household_demographics] +------------------------------------------------------PhysicalOlapScan[household_demographics] apply RFs: RF13 --------------------------------------------------PhysicalDistribute ----------------------------------------------------PhysicalProject ------------------------------------------------------PhysicalOlapScan[income_band] @@ -44,39 +44,39 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) ------------------------------PhysicalOlapScan[customer_address] --------------------PhysicalDistribute ----------------------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=() +------------------------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:RF11 ss_item_sk->[sr_item_sk];RF12 ss_ticket_number->[sr_ticket_number] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_returns] +----------------------------PhysicalOlapScan[store_returns] apply RFs: RF11 RF12 --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = cs_ui.cs_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = cs_ui.cs_item_sk)) otherCondition=() build RFs:RF10 cs_item_sk->[ss_item_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF9 p_promo_sk->[ss_promo_sk] --------------------------------------PhysicalProject -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = ad1.ca_address_sk))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = ad1.ca_address_sk)) otherCondition=() build RFs:RF8 ca_address_sk->[ss_addr_sk] ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = cd1.cd_demo_sk))otherCondition=() +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = cd1.cd_demo_sk)) otherCondition=() build RFs:RF7 cd_demo_sk->[ss_cdemo_sk] ------------------------------------------------PhysicalDistribute ---------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +--------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF6 i_item_sk->[ss_item_sk] ----------------------------------------------------PhysicalProject -------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF5 s_store_sk->[ss_store_sk] --------------------------------------------------------PhysicalProject -----------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((hd1.hd_income_band_sk = ib1.ib_income_band_sk))otherCondition=() +----------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((hd1.hd_income_band_sk = ib1.ib_income_band_sk)) otherCondition=() build RFs:RF4 ib_income_band_sk->[hd_income_band_sk] ------------------------------------------------------------PhysicalProject ---------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = hd1.hd_demo_sk))otherCondition=() +--------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = hd1.hd_demo_sk)) otherCondition=() build RFs:RF3 hd_demo_sk->[ss_hdemo_sk] ----------------------------------------------------------------PhysicalProject -------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk))otherCondition=() +------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ss_sold_date_sk] --------------------------------------------------------------------PhysicalProject -----------------------------------------------------------------------PhysicalOlapScan[store_sales] +----------------------------------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 RF3 RF5 RF6 RF7 RF8 RF9 RF10 --------------------------------------------------------------------PhysicalDistribute ----------------------------------------------------------------------PhysicalProject ------------------------------------------------------------------------filter(d_year IN (1999, 2000)) --------------------------------------------------------------------------PhysicalOlapScan[date_dim] ----------------------------------------------------------------PhysicalDistribute ------------------------------------------------------------------PhysicalProject ---------------------------------------------------------------------PhysicalOlapScan[household_demographics] +--------------------------------------------------------------------PhysicalOlapScan[household_demographics] apply RFs: RF4 ------------------------------------------------------------PhysicalDistribute --------------------------------------------------------------PhysicalProject ----------------------------------------------------------------PhysicalOlapScan[income_band] @@ -102,9 +102,9 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) --------------------------------------PhysicalDistribute ----------------------------------------hashAgg[LOCAL] ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number)) otherCondition=() build RFs:RF0 cr_order_number->[cs_order_number];RF1 cr_item_sk->[cs_item_sk] ----------------------------------------------PhysicalProject -------------------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 ----------------------------------------------PhysicalProject ------------------------------------------------PhysicalOlapScan[catalog_returns] ----------------PhysicalDistribute @@ -115,7 +115,7 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) ------PhysicalDistribute --------PhysicalQuickSort[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((cs1.item_sk = cs2.item_sk) and (cs1.store_name = cs2.store_name) and (cs1.store_zip = cs2.store_zip))otherCondition=((cs2.cnt <= cs1.cnt)) +------------hashJoin[INNER_JOIN] hashCondition=((cs1.item_sk = cs2.item_sk) and (cs1.store_name = cs2.store_name) and (cs1.store_zip = cs2.store_zip)) otherCondition=((cs2.cnt <= cs1.cnt)) --------------PhysicalDistribute ----------------PhysicalProject ------------------filter((cs1.syear = 1999)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query65.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query65.out index a371c540d7..325fea04dd 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query65.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query65.out @@ -5,18 +5,18 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = sc.ss_item_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = sc.ss_item_sk)) otherCondition=() build RFs:RF4 i_item_sk->[ss_item_sk] ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = sc.ss_store_sk))otherCondition=() -------------------hashJoin[INNER_JOIN] hashCondition=((sb.ss_store_sk = sc.ss_store_sk))otherCondition=((cast(revenue as DOUBLE) <= cast((0.1 * ave) as DOUBLE))) +----------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = sc.ss_store_sk)) otherCondition=() build RFs:RF3 s_store_sk->[ss_store_sk] +------------------hashJoin[INNER_JOIN] hashCondition=((sb.ss_store_sk = sc.ss_store_sk)) otherCondition=((cast(revenue as DOUBLE) <= cast((0.1 * ave) as DOUBLE))) build RFs:RF2 ss_store_sk->[ss_store_sk] --------------------hashAgg[GLOBAL] ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[store_sales] +--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((date_dim.d_month_seq <= 1187) and (date_dim.d_month_seq >= 1176)) @@ -30,9 +30,9 @@ PhysicalResultSink --------------------------------PhysicalDistribute ----------------------------------hashAgg[LOCAL] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_month_seq <= 1187) and (date_dim.d_month_seq >= 1176)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query66.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query66.out index d5bb1b9ace..d1d3def692 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query66.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query66.out @@ -13,14 +13,14 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF3 w_warehouse_sk->[ws_warehouse_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF2 t_time_sk->[ws_sold_time_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_mode_sk = ship_mode.sm_ship_mode_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] +------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_mode_sk = ship_mode.sm_ship_mode_sk)) otherCondition=() build RFs:RF0 sm_ship_mode_sk->[ws_ship_mode_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 RF2 RF3 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter(sm_carrier IN ('BOXBUNDLES', 'ORIENTAL')) @@ -41,14 +41,14 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF7 w_warehouse_sk->[cs_warehouse_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF6 t_time_sk->[cs_sold_time_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_mode_sk = ship_mode.sm_ship_mode_sk))otherCondition=() +----------------------------------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] +------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_mode_sk = ship_mode.sm_ship_mode_sk)) otherCondition=() build RFs:RF4 sm_ship_mode_sk->[cs_ship_mode_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[catalog_sales] +----------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4 RF5 RF6 RF7 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter(sm_carrier IN ('BOXBUNDLES', 'ORIENTAL')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query67.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query67.out index c0cda8bc0c..f0f7bc4db0 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query67.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query67.out @@ -15,13 +15,13 @@ PhysicalResultSink ------------------------hashAgg[LOCAL] --------------------------PhysicalRepeat ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ss_item_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ss_store_sk] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_month_seq <= 1228) and (date_dim.d_month_seq >= 1217)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query68.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query68.out index d260ce0313..f6085d61fb 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query68.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query68.out @@ -5,31 +5,31 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = current_addr.ca_address_sk))otherCondition=(( not (ca_city = bought_city))) +----------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = current_addr.ca_address_sk)) otherCondition=(( not (ca_city = bought_city))) build RFs:RF5 c_current_addr_sk->[ca_address_sk] ------------PhysicalProject ---------------PhysicalOlapScan[customer_address] +--------------PhysicalOlapScan[customer_address] apply RFs: RF5 ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF4 ss_customer_sk->[c_customer_sk] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------PhysicalOlapScan[customer] +----------------------PhysicalOlapScan[customer] apply RFs: RF4 ------------------PhysicalDistribute --------------------PhysicalProject ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 ss_addr_sk->[ca_address_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[customer_address] +------------------------------PhysicalOlapScan[customer_address] apply RFs: RF3 ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[ss_hdemo_sk] ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ss_store_sk] --------------------------------------PhysicalProject -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------------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] +--------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter((date_dim.d_dom <= 2) and (date_dim.d_dom >= 1) and d_year IN (1998, 1999, 2000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query69.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query69.out index da3031f82c..c77fe59eb2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query69.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query69.out @@ -9,48 +9,48 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF7 c_customer_sk->[ss_customer_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[ss_sold_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_sales] +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF6 RF7 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy >= 1) and (date_dim.d_year = 2002)) --------------------------------PhysicalOlapScan[date_dim] --------------------PhysicalProject -----------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk))otherCondition=() +----------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[cs_ship_customer_sk] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[cs_sold_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4 RF5 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy >= 1) and (date_dim.d_year = 2002)) ------------------------------------PhysicalOlapScan[date_dim] ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) otherCondition=() build RFs:RF3 c_current_cdemo_sk->[cd_demo_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[customer_demographics] +--------------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF3 ----------------------------PhysicalDistribute -------------------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +------------------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() build RFs:RF2 c_customer_sk->[ws_bill_customer_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 RF2 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy >= 1) and (date_dim.d_year = 2002)) --------------------------------------------PhysicalOlapScan[date_dim] --------------------------------PhysicalDistribute -----------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[c_current_addr_sk] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[customer] +----------------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter(ca_state IN ('IL', 'ME', 'TX')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query7.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query7.out index d367161211..379ab9b02e 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query7.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query7.out @@ -8,15 +8,15 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ss_item_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF2 p_promo_sk->[ss_promo_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = customer_demographics.cd_demo_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF0 cd_demo_sk->[ss_cdemo_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[store_sales] +--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF3 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((customer_demographics.cd_education_status = 'College') and (customer_demographics.cd_gender = 'F') and (customer_demographics.cd_marital_status = 'W')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query70.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query70.out index be1b1fdc79..eedc4fd1f5 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query70.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query70.out @@ -15,20 +15,20 @@ PhysicalResultSink ------------------------hashAgg[LOCAL] --------------------------PhysicalRepeat ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF4 s_store_sk->[ss_store_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF3 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF3 RF4 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((d1.d_month_seq <= 1231) and (d1.d_month_seq >= 1220)) ------------------------------------------PhysicalOlapScan[date_dim] --------------------------------PhysicalDistribute -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((store.s_state = tmp1.s_state))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((store.s_state = tmp1.s_state)) otherCondition=() build RFs:RF2 s_state->[s_state] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[store] +----------------------------------------PhysicalOlapScan[store] apply RFs: RF2 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((ranking <= 5)) @@ -41,10 +41,10 @@ PhysicalResultSink ------------------------------------------------------PhysicalDistribute --------------------------------------------------------hashAgg[LOCAL] ----------------------------------------------------------PhysicalProject -------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() ---------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ss_store_sk] +--------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk] ----------------------------------------------------------------PhysicalProject -------------------------------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------------------------------------------------PhysicalDistribute ------------------------------------------------------------------PhysicalProject --------------------------------------------------------------------filter((date_dim.d_month_seq <= 1231) and (date_dim.d_month_seq >= 1220)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query71.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query71.out index c290b168ae..2eca1ec4e3 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query71.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query71.out @@ -9,34 +9,34 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((tmp.time_sk = time_dim.t_time_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((tmp.time_sk = time_dim.t_time_sk)) otherCondition=() --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((tmp.sold_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((tmp.sold_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ws_item_sk,cs_item_sk,ss_item_sk] --------------------------PhysicalUnion ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[web_sales] +------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF3 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_moy = 12) and (date_dim.d_year = 2002)) ----------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF1 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_moy = 12) and (date_dim.d_year = 2002)) ----------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ss_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_moy = 12) and (date_dim.d_year = 2002)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query72.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query72.out index e0b738a33c..88b80237c4 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query72.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query72.out @@ -8,32 +8,32 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((warehouse.w_warehouse_sk = inventory.inv_warehouse_sk))otherCondition=() +----------------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)) +--------------------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] +------------------------PhysicalOlapScan[inventory] apply RFs: RF8 RF9 RF10 ----------------------PhysicalDistribute ------------------------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=() +--------------------------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] +----------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF5 RF6 ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk))otherCondition=() +----------------------------------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[LEFT_OUTER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk))otherCondition=() +----------------------------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk)) otherCondition=() ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = customer_demographics.cd_demo_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF3 cd_demo_sk->[cs_bill_cdemo_sk] ----------------------------------------------PhysicalDistribute -------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() ---------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_date_sk = d3.d_date_sk) and (catalog_sales.cs_sold_date_sk = d1.d_date_sk))otherCondition=() +------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[cs_bill_hdemo_sk] +--------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_date_sk = d3.d_date_sk) and (catalog_sales.cs_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_ship_date_sk];RF1 d_date_sk->[cs_sold_date_sk] ----------------------------------------------------PhysicalDistribute ------------------------------------------------------PhysicalProject ---------------------------------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 RF3 RF4 ----------------------------------------------------PhysicalDistribute ------------------------------------------------------NestedLoopJoin[INNER_JOIN](d3.d_date > days_add(d_date, INTERVAL 5 DAY)) --------------------------------------------------------PhysicalProject @@ -41,7 +41,7 @@ PhysicalResultSink --------------------------------------------------------PhysicalDistribute ----------------------------------------------------------PhysicalProject ------------------------------------------------------------filter((d1.d_year = 1998)) ---------------------------------------------------------------PhysicalOlapScan[date_dim] +--------------------------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF7 --------------------------------------------------PhysicalDistribute ----------------------------------------------------PhysicalProject ------------------------------------------------------filter((household_demographics.hd_buy_potential = '1001-5000')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query73.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query73.out index 53f5e41412..68ad77810a 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query73.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query73.out @@ -5,22 +5,22 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalQuickSort[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((dj.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((dj.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 ss_customer_sk->[c_customer_sk] ------------PhysicalProject ---------------PhysicalOlapScan[customer] +--------------PhysicalOlapScan[customer] apply RFs: RF3 ------------PhysicalDistribute --------------filter((dj.cnt <= 5) and (dj.cnt >= 1)) ----------------hashAgg[GLOBAL] ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[ss_hdemo_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ss_store_sk] ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------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] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_dom <= 2) and (date_dim.d_dom >= 1) and d_year IN (2000, 2001, 2002)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query74.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query74.out index 7c78f98312..94af65ccc1 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query74.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query74.out @@ -8,11 +8,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF1 c_customer_sk->[ss_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------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] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1999, 2000)) @@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ws_bill_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ws_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_sales] +------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 RF3 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1999, 2000)) @@ -42,9 +42,9 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id))otherCondition=((if((year_total > 0.00), (cast(year_total as DECIMALV3(13, 8)) / year_total), NULL) > if((year_total > 0.00), (cast(year_total as DECIMALV3(13, 8)) / year_total), NULL))) ---------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id))otherCondition=() -----------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id)) otherCondition=((if((year_total > 0.00), (cast(year_total as DECIMALV3(13, 8)) / year_total), NULL) > if((year_total > 0.00), (cast(year_total as DECIMALV3(13, 8)) / year_total), NULL))) +--------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id)) otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id)) otherCondition=() ------------------PhysicalDistribute --------------------PhysicalProject ----------------------filter((t_s_firstyear.sale_type = 's') and (t_s_firstyear.year = 1999) and (t_s_firstyear.year_total > 0.00)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query75.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query75.out index f188a63175..f1b93b839d 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query75.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query75.out @@ -11,15 +11,15 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------------PhysicalUnion ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number))otherCondition=() +----------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number)) otherCondition=() build RFs:RF2 cs_order_number->[cr_order_number];RF3 cs_item_sk->[cr_item_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[catalog_returns] +--------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF2 RF3 ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[cs_item_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[catalog_sales] +----------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Sports')) @@ -30,15 +30,15 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------------------------------PhysicalOlapScan[date_dim] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() +----------------------hashJoin[RIGHT_OUTER_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:RF6 ss_ticket_number->[sr_ticket_number];RF7 ss_item_sk->[sr_item_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[store_returns] +--------------------------PhysicalOlapScan[store_returns] apply RFs: RF6 RF7 ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF5 d_date_sk->[ss_sold_date_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk)) otherCondition=() build RFs:RF4 i_item_sk->[ss_item_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[store_sales] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF4 RF5 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Sports')) @@ -49,15 +49,15 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------------------------------PhysicalOlapScan[date_dim] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number))otherCondition=() +----------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number)) otherCondition=() build RFs:RF10 ws_order_number->[wr_order_number];RF11 ws_item_sk->[wr_item_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[web_returns] +--------------------------PhysicalOlapScan[web_returns] apply RFs: RF10 RF11 ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk)) otherCondition=() build RFs:RF9 d_date_sk->[ws_sold_date_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk)) otherCondition=() build RFs:RF8 i_item_sk->[ws_item_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_sales] +----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF8 RF9 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Sports')) @@ -71,7 +71,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((curr_yr.i_brand_id = prev_yr.i_brand_id) and (curr_yr.i_category_id = prev_yr.i_category_id) and (curr_yr.i_class_id = prev_yr.i_class_id) and (curr_yr.i_manufact_id = prev_yr.i_manufact_id))otherCondition=(((cast(cast(sales_cnt as DECIMALV3(17, 2)) as DECIMALV3(23, 8)) / cast(sales_cnt as DECIMALV3(17, 2))) < 0.900000)) +------------hashJoin[INNER_JOIN] hashCondition=((curr_yr.i_brand_id = prev_yr.i_brand_id) and (curr_yr.i_category_id = prev_yr.i_category_id) and (curr_yr.i_class_id = prev_yr.i_class_id) and (curr_yr.i_manufact_id = prev_yr.i_manufact_id)) otherCondition=(((cast(cast(sales_cnt as DECIMALV3(17, 2)) as DECIMALV3(23, 8)) / cast(sales_cnt as DECIMALV3(17, 2))) < 0.900000)) --------------PhysicalDistribute ----------------filter((curr_yr.d_year = 2002)) ------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query76.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query76.out index d47ee1880b..5aa9559b23 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query76.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query76.out @@ -10,11 +10,11 @@ PhysicalResultSink --------------PhysicalUnion ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ss_item_sk] +----------------------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 --------------------------filter(ss_customer_sk IS NULL) -----------------------------PhysicalOlapScan[store_sales] +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------PhysicalOlapScan[date_dim] @@ -23,11 +23,11 @@ PhysicalResultSink --------------------------PhysicalOlapScan[item] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ws_item_sk] +----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ws_sold_date_sk] ------------------------PhysicalProject --------------------------filter(ws_promo_sk IS NULL) -----------------------------PhysicalOlapScan[web_sales] +----------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 RF3 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------PhysicalOlapScan[date_dim] @@ -36,11 +36,11 @@ PhysicalResultSink --------------------------PhysicalOlapScan[item] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF5 i_item_sk->[cs_item_sk] +----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[cs_sold_date_sk] ------------------------PhysicalProject --------------------------filter(cs_bill_customer_sk IS NULL) -----------------------------PhysicalOlapScan[catalog_sales] +----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4 RF5 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------PhysicalOlapScan[date_dim] diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query77.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query77.out index 30a6c210ad..a2b18f3a0b 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query77.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query77.out @@ -11,17 +11,17 @@ PhysicalResultSink ----------------PhysicalRepeat ------------------PhysicalUnion --------------------PhysicalProject -----------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ss.s_store_sk = sr.s_store_sk))otherCondition=() +----------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ss.s_store_sk = sr.s_store_sk)) otherCondition=() ------------------------PhysicalProject --------------------------hashAgg[GLOBAL] ----------------------------PhysicalDistribute ------------------------------hashAgg[LOCAL] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF3 s_store_sk->[ss_store_sk] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 RF3 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_date <= '2000-09-09') and (date_dim.d_date >= '2000-08-10')) @@ -34,11 +34,11 @@ PhysicalResultSink ----------------------------PhysicalDistribute ------------------------------hashAgg[LOCAL] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_store_sk = store.s_store_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[sr_store_sk] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_returns] +------------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF0 RF1 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_date <= '2000-09-09') and (date_dim.d_date >= '2000-08-10')) @@ -53,9 +53,9 @@ PhysicalResultSink ----------------------------PhysicalDistribute ------------------------------hashAgg[LOCAL] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------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] +--------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((date_dim.d_date <= '2000-09-09') and (date_dim.d_date >= '2000-08-10')) @@ -66,25 +66,25 @@ PhysicalResultSink ------------------------------PhysicalDistribute --------------------------------hashAgg[LOCAL] ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[cr_returned_date_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[catalog_returns] +----------------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF4 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((date_dim.d_date <= '2000-09-09') and (date_dim.d_date >= '2000-08-10')) --------------------------------------------PhysicalOlapScan[date_dim] --------------------PhysicalProject -----------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ws.wp_web_page_sk = wr.wp_web_page_sk))otherCondition=() +----------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ws.wp_web_page_sk = wr.wp_web_page_sk)) otherCondition=() ------------------------PhysicalProject --------------------------hashAgg[GLOBAL] ----------------------------PhysicalDistribute ------------------------------hashAgg[LOCAL] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF9 wp_web_page_sk->[ws_web_page_sk] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF8 RF9 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_date <= '2000-09-09') and (date_dim.d_date >= '2000-08-10')) @@ -95,12 +95,12 @@ PhysicalResultSink ------------------------PhysicalProject --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_web_page_sk = web_page.wp_web_page_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF7 wp_web_page_sk->[wr_web_page_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[wr_returned_date_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[web_returns] +----------------------------------------PhysicalOlapScan[web_returns] apply RFs: RF6 RF7 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((date_dim.d_date <= '2000-09-09') and (date_dim.d_date >= '2000-08-10')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query78.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query78.out index 0323a2f629..80cfb60d51 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query78.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query78.out @@ -6,18 +6,18 @@ PhysicalResultSink ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject ----------filter(((coalesce(ws_qty, 0) > 0) OR (coalesce(cs_qty, 0) > 0))) -------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((cs.cs_customer_sk = ss.ss_customer_sk) and (cs.cs_item_sk = ss.ss_item_sk) and (cs.cs_sold_year = ss.ss_sold_year))otherCondition=() +------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((cs.cs_customer_sk = ss.ss_customer_sk) and (cs.cs_item_sk = ss.ss_item_sk) and (cs.cs_sold_year = ss.ss_sold_year)) otherCondition=() --------------PhysicalProject -----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ws.ws_customer_sk = ss.ss_customer_sk) and (ws.ws_item_sk = ss.ss_item_sk) and (ws.ws_sold_year = ss.ss_sold_year))otherCondition=() +----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ws.ws_customer_sk = ss.ss_customer_sk) and (ws.ws_item_sk = ss.ss_item_sk) and (ws.ws_sold_year = ss.ss_sold_year)) otherCondition=() ------------------PhysicalProject --------------------hashAgg[GLOBAL] ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((store_returns.sr_ticket_number = store_sales.ss_ticket_number) and (store_sales.ss_item_sk = store_returns.sr_item_sk))otherCondition=() -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((store_returns.sr_ticket_number = store_sales.ss_ticket_number) and (store_sales.ss_item_sk = store_returns.sr_item_sk)) otherCondition=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_year = 1998)) @@ -29,10 +29,10 @@ PhysicalResultSink ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((web_returns.wr_order_number = web_sales.ws_order_number) and (web_sales.ws_item_sk = web_returns.wr_item_sk))otherCondition=() -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((web_returns.wr_order_number = web_sales.ws_order_number) and (web_sales.ws_item_sk = web_returns.wr_item_sk)) otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_sales] +----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_year = 1998)) @@ -44,10 +44,10 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((catalog_returns.cr_order_number = catalog_sales.cs_order_number) and (catalog_sales.cs_item_sk = catalog_returns.cr_item_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((catalog_returns.cr_order_number = catalog_sales.cs_order_number) and (catalog_sales.cs_item_sk = catalog_returns.cr_item_sk)) otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[catalog_sales] +------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((date_dim.d_year = 1998)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query79.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query79.out index cc78d62071..9faec387ef 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query79.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query79.out @@ -5,19 +5,19 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((ms.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((ms.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ss_customer_sk] ------------PhysicalDistribute --------------PhysicalProject ----------------hashAgg[GLOBAL] ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF1 hd_demo_sk->[ss_hdemo_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_dow = 1) and d_year IN (2000, 2001, 2002)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query8.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query8.out index e8922e8c0f..d3da9091cd 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query8.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query8.out @@ -8,13 +8,13 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((expr_substring(s_zip, 1, 2) = expr_substring(ca_zip, 1, 2)))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((expr_substring(s_zip, 1, 2) = expr_substring(ca_zip, 1, 2))) otherCondition=() ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_sales] +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_qoy = 2) and (date_dim.d_year = 1998)) @@ -36,9 +36,9 @@ PhysicalResultSink --------------------------------PhysicalDistribute ----------------------------------hashAgg[LOCAL] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF0 c_current_addr_sk->[ca_address_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[customer_address] +------------------------------------------PhysicalOlapScan[customer_address] apply RFs: RF0 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((customer.c_preferred_cust_flag = 'Y')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query80.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query80.out index b9abfd241a..cb9d14fbfa 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query80.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query80.out @@ -15,20 +15,20 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() +------------------------------hashJoin[RIGHT_OUTER_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:RF4 ss_item_sk->[sr_item_sk];RF5 ss_ticket_number->[sr_ticket_number] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_returns] +------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF4 RF5 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF3 s_store_sk->[ss_store_sk] +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ss_item_sk] ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk))otherCondition=() -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF1 p_promo_sk->[ss_promo_sk] +----------------------------------------------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] +--------------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF3 ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject ----------------------------------------------------filter((date_dim.d_date <= '2002-09-13') and (date_dim.d_date >= '2002-08-14')) @@ -49,20 +49,20 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_catalog_page_sk = catalog_page.cp_catalog_page_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_catalog_page_sk = catalog_page.cp_catalog_page_sk)) otherCondition=() build RFs:RF11 cp_catalog_page_sk->[cs_catalog_page_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number))otherCondition=() +----------------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number)) otherCondition=() build RFs:RF9 cs_item_sk->[cr_item_sk];RF10 cs_order_number->[cr_order_number] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[catalog_returns] +----------------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF9 RF10 ------------------------------------PhysicalDistribute ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF8 i_item_sk->[cs_item_sk] ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk))otherCondition=() -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF7 p_promo_sk->[cs_promo_sk] +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[cs_sold_date_sk] ------------------------------------------------PhysicalProject ---------------------------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF6 RF7 RF8 RF11 ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject ----------------------------------------------------filter((date_dim.d_date <= '2002-09-13') and (date_dim.d_date >= '2002-08-14')) @@ -83,20 +83,20 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number))otherCondition=() +------------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number)) otherCondition=() build RFs:RF16 ws_item_sk->[wr_item_sk];RF17 ws_order_number->[wr_order_number] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[web_returns] +------------------------------------PhysicalOlapScan[web_returns] apply RFs: RF16 RF17 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_site_sk = web_site.web_site_sk))otherCondition=() ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() build RFs:RF15 web_site_sk->[ws_web_site_sk] +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF14 i_item_sk->[ws_item_sk] ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_promo_sk = promotion.p_promo_sk))otherCondition=() -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF13 p_promo_sk->[ws_promo_sk] +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF12 d_date_sk->[ws_sold_date_sk] ------------------------------------------------PhysicalProject ---------------------------------------------------PhysicalOlapScan[web_sales] +--------------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF12 RF13 RF14 RF15 ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject ----------------------------------------------------filter((date_dim.d_date <= '2002-09-13') and (date_dim.d_date >= '2002-08-14')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query81.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query81.out index 61e82c6b44..790f28564f 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query81.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query81.out @@ -7,12 +7,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returning_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returning_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF1 ca_address_sk->[cr_returning_addr_sk] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cr_returned_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_returns] +------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((date_dim.d_year = 2001)) @@ -25,16 +25,16 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_state = ctr2.ctr_state))otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) +------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_state = ctr2.ctr_state)) otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ctr_customer_sk] ------------------PhysicalDistribute --------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[c_current_addr_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------PhysicalOlapScan[customer] +--------------------------PhysicalOlapScan[customer] apply RFs: RF2 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((customer_address.ca_state = 'TN')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query82.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query82.out index 9a9d5630e6..d2ccfa12d1 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query82.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query82.out @@ -8,17 +8,17 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ss_item_sk] ------------------PhysicalProject ---------------------PhysicalOlapScan[store_sales] +--------------------PhysicalOlapScan[store_sales] apply RFs: RF2 ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = inventory.inv_date_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = inventory.inv_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[inv_date_sk] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[inv_item_sk] ----------------------------PhysicalProject ------------------------------filter((inventory.inv_quantity_on_hand <= 500) and (inventory.inv_quantity_on_hand >= 100)) ---------------------------------PhysicalOlapScan[inventory] +--------------------------------PhysicalOlapScan[inventory] apply RFs: RF0 RF1 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((item.i_current_price <= 88.00) and (item.i_current_price >= 58.00) and i_manufact_id IN (259, 485, 559, 580)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query83.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query83.out index 660a658861..4884777998 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query83.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query83.out @@ -6,82 +6,82 @@ PhysicalResultSink ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = cr_items.item_id))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = cr_items.item_id)) otherCondition=() build RFs:RF13 item_id->[i_item_id] --------------PhysicalProject ----------------hashAgg[GLOBAL] ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF12 i_item_sk->[cr_item_sk] --------------------------PhysicalDistribute -----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF11 d_date_sk->[cr_returned_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_returns] +--------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF11 RF12 ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF10 d_date->[d_date] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[date_dim] +--------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF10 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +----------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF9 d_week_seq->[d_week_seq] ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[date_dim] +--------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF9 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter(d_date IN ('2001-07-13', '2001-09-10', '2001-11-16')) ------------------------------------------------PhysicalOlapScan[date_dim] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[item] ---------------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = wr_items.item_id))otherCondition=() +------------------------------PhysicalOlapScan[item] apply RFs: RF13 +--------------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = wr_items.item_id)) otherCondition=() build RFs:RF8 item_id->[i_item_id] ----------------PhysicalProject ------------------hashAgg[GLOBAL] --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF7 i_item_sk->[sr_item_sk] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[sr_returned_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[store_returns] +----------------------------------PhysicalOlapScan[store_returns] apply RFs: RF6 RF7 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF5 d_date->[d_date] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF5 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +------------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF4 d_week_seq->[d_week_seq] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF4 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject ------------------------------------------------filter(d_date IN ('2001-07-13', '2001-09-10', '2001-11-16')) --------------------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[item] +--------------------------------PhysicalOlapScan[item] apply RFs: RF8 ----------------PhysicalProject ------------------hashAgg[GLOBAL] --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[wr_item_sk] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[wr_returned_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_returns] +----------------------------------PhysicalOlapScan[web_returns] apply RFs: RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF1 d_date->[d_date] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF1 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +------------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF0 d_week_seq->[d_week_seq] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF0 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject ------------------------------------------------filter(d_date IN ('2001-07-13', '2001-09-10', '2001-11-16')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query84.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query84.out index e57dc5e852..a91a17d386 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query84.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query84.out @@ -5,31 +5,31 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_cdemo_sk = customer_demographics.cd_demo_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF4 cd_demo_sk->[sr_cdemo_sk] ------------PhysicalProject ---------------PhysicalOlapScan[store_returns] +--------------PhysicalOlapScan[store_returns] apply RFs: RF4 ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = customer.c_current_cdemo_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = customer.c_current_cdemo_sk)) otherCondition=() build RFs:RF3 c_current_cdemo_sk->[cd_demo_sk] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------PhysicalOlapScan[customer_demographics] +----------------------PhysicalOlapScan[customer_demographics] apply RFs: RF3 ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((household_demographics.hd_demo_sk = customer.c_current_hdemo_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((household_demographics.hd_demo_sk = customer.c_current_hdemo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[c_current_hdemo_sk] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF1 ca_address_sk->[c_current_addr_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[customer] +--------------------------------PhysicalOlapScan[customer] apply RFs: RF1 RF2 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((customer_address.ca_city = 'Woodland')) ------------------------------------PhysicalOlapScan[customer_address] ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((income_band.ib_income_band_sk = household_demographics.hd_income_band_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((income_band.ib_income_band_sk = household_demographics.hd_income_band_sk)) otherCondition=() build RFs:RF0 ib_income_band_sk->[hd_income_band_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[household_demographics] +------------------------------PhysicalOlapScan[household_demographics] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((cast(ib_upper_bound as BIGINT) <= 110306) and (income_band.ib_lower_bound >= 60306)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out index 2db1070fca..a1d1b439ad 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out @@ -9,33 +9,33 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((reason.r_reason_sk = web_returns.wr_reason_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((reason.r_reason_sk = web_returns.wr_reason_sk)) otherCondition=() build RFs:RF9 r_reason_sk->[wr_reason_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = web_returns.wr_refunded_addr_sk))otherCondition=((((ca_state IN ('IA', 'NC', 'TX') AND ((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 200.00))) OR (ca_state IN ('GA', 'WI', 'WV') AND ((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('KY', 'OK', 'VA') AND ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 250.00))))) +------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = web_returns.wr_refunded_addr_sk)) otherCondition=((((ca_state IN ('IA', 'NC', 'TX') AND ((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 200.00))) OR (ca_state IN ('GA', 'WI', 'WV') AND ((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('KY', 'OK', 'VA') AND ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 250.00))))) build RFs:RF8 wr_refunded_addr_sk->[ca_address_sk] --------------------------PhysicalProject ----------------------------filter(((ca_state IN ('IA', 'NC', 'TX') OR ca_state IN ('GA', 'WI', 'WV')) OR ca_state IN ('KY', 'OK', 'VA')) and (customer_address.ca_country = 'United States')) -------------------------------PhysicalOlapScan[customer_address] +------------------------------PhysicalOlapScan[customer_address] apply RFs: RF8 --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF7 wp_web_page_sk->[ws_web_page_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((cd1.cd_education_status = cd2.cd_education_status) and (cd1.cd_marital_status = cd2.cd_marital_status) and (cd2.cd_demo_sk = web_returns.wr_returning_cdemo_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((cd1.cd_education_status = cd2.cd_education_status) and (cd1.cd_marital_status = cd2.cd_marital_status) and (cd2.cd_demo_sk = web_returns.wr_returning_cdemo_sk)) otherCondition=() build RFs:RF4 cd_marital_status->[cd_marital_status];RF5 cd_education_status->[cd_education_status];RF6 wr_returning_cdemo_sk->[cd_demo_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[customer_demographics] +----------------------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF4 RF5 RF6 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cd1.cd_demo_sk = web_returns.wr_refunded_cdemo_sk))otherCondition=((((((cd1.cd_marital_status = 'D') AND (cd1.cd_education_status = 'Primary')) AND ((web_sales.ws_sales_price >= 100.00) AND (web_sales.ws_sales_price <= 150.00))) OR (((cd1.cd_marital_status = 'S') AND (cd1.cd_education_status = 'College')) AND ((web_sales.ws_sales_price >= 50.00) AND (web_sales.ws_sales_price <= 100.00)))) OR (((cd1.cd_marital_status = 'U') AND (cd1.cd_education_status = 'Advanced Degree')) AND ((web_sales.ws_sales_price >= 150.00) AND (web_sales.ws_sales_price <= 200.00))))) +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cd1.cd_demo_sk = web_returns.wr_refunded_cdemo_sk)) otherCondition=((((((cd1.cd_marital_status = 'D') AND (cd1.cd_education_status = 'Primary')) AND ((web_sales.ws_sales_price >= 100.00) AND (web_sales.ws_sales_price <= 150.00))) OR (((cd1.cd_marital_status = 'S') AND (cd1.cd_education_status = 'College')) AND ((web_sales.ws_sales_price >= 50.00) AND (web_sales.ws_sales_price <= 100.00)))) OR (((cd1.cd_marital_status = 'U') AND (cd1.cd_education_status = 'Advanced Degree')) AND ((web_sales.ws_sales_price >= 150.00) AND (web_sales.ws_sales_price <= 200.00))))) build RFs:RF3 cd_demo_sk->[wr_refunded_cdemo_sk] --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject -------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number))otherCondition=() +------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number)) otherCondition=() build RFs:RF1 ws_item_sk->[wr_item_sk];RF2 ws_order_number->[wr_order_number] --------------------------------------------------PhysicalProject -----------------------------------------------------PhysicalOlapScan[web_returns] ---------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------------------------PhysicalOlapScan[web_returns] apply RFs: RF1 RF2 RF3 RF9 +--------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk] ----------------------------------------------------PhysicalProject ------------------------------------------------------filter(((((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 200.00)) OR ((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00))) OR ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 250.00))) and ((((web_sales.ws_sales_price >= 100.00) AND (web_sales.ws_sales_price <= 150.00)) OR ((web_sales.ws_sales_price >= 50.00) AND (web_sales.ws_sales_price <= 100.00))) OR ((web_sales.ws_sales_price >= 150.00) AND (web_sales.ws_sales_price <= 200.00)))) ---------------------------------------------------------PhysicalOlapScan[web_sales] +--------------------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF7 ----------------------------------------------------PhysicalDistribute ------------------------------------------------------PhysicalProject --------------------------------------------------------filter((date_dim.d_year = 1998)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query86.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query86.out index 50c1cc760c..f93dca4d20 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query86.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query86.out @@ -15,12 +15,12 @@ PhysicalResultSink ------------------------hashAgg[LOCAL] --------------------------PhysicalRepeat ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ws_item_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = web_sales.ws_sold_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = web_sales.ws_sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((d1.d_month_seq <= 1197) and (d1.d_month_seq >= 1186)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query87.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query87.out index be0ac2cc4a..054bf781d2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query87.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query87.out @@ -10,12 +10,12 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF1 c_customer_sk->[ss_customer_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------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] +------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((date_dim.d_month_seq <= 1213) and (date_dim.d_month_seq >= 1202)) @@ -27,12 +27,12 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[cs_bill_customer_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[cs_sold_date_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[catalog_sales] +------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((date_dim.d_month_seq <= 1213) and (date_dim.d_month_seq >= 1202)) @@ -44,12 +44,12 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ws_bill_customer_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[web_sales] +------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 RF5 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((date_dim.d_month_seq <= 1213) and (date_dim.d_month_seq >= 1202)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query88.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query88.out index c001923702..60fa7263b8 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query88.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query88.out @@ -13,12 +13,12 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF23 s_store_sk->[ss_store_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF22 hd_demo_sk->[ss_hdemo_sk] +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF21 t_time_sk->[ss_sold_time_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF21 RF22 RF23 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((time_dim.t_hour = 8) and (time_dim.t_minute >= 30)) @@ -36,12 +36,12 @@ PhysicalResultSink ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF20 s_store_sk->[ss_store_sk] ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF19 hd_demo_sk->[ss_hdemo_sk] +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF18 t_time_sk->[ss_sold_time_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF18 RF19 RF20 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((time_dim.t_hour = 9) and (time_dim.t_minute < 30)) @@ -59,12 +59,12 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF17 s_store_sk->[ss_store_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF16 hd_demo_sk->[ss_hdemo_sk] +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF15 t_time_sk->[ss_sold_time_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF15 RF16 RF17 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((time_dim.t_hour = 9) and (time_dim.t_minute >= 30)) @@ -82,12 +82,12 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF14 s_store_sk->[ss_store_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF13 hd_demo_sk->[ss_hdemo_sk] +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF12 t_time_sk->[ss_sold_time_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[store_sales] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF12 RF13 RF14 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((time_dim.t_hour = 10) and (time_dim.t_minute < 30)) @@ -105,12 +105,12 @@ PhysicalResultSink ----------------PhysicalDistribute ------------------hashAgg[LOCAL] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF11 s_store_sk->[ss_store_sk] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF10 hd_demo_sk->[ss_hdemo_sk] +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF9 t_time_sk->[ss_sold_time_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[store_sales] +--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF9 RF10 RF11 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((time_dim.t_hour = 10) and (time_dim.t_minute >= 30)) @@ -128,12 +128,12 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF8 s_store_sk->[ss_store_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF7 hd_demo_sk->[ss_hdemo_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF6 t_time_sk->[ss_sold_time_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[store_sales] +------------------------------PhysicalOlapScan[store_sales] apply RFs: RF6 RF7 RF8 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((time_dim.t_hour = 11) and (time_dim.t_minute < 30)) @@ -151,12 +151,12 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF5 s_store_sk->[ss_store_sk] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF4 hd_demo_sk->[ss_hdemo_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF3 t_time_sk->[ss_sold_time_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_sales] +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF3 RF4 RF5 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((time_dim.t_hour = 11) and (time_dim.t_minute >= 30)) @@ -174,12 +174,12 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF1 hd_demo_sk->[ss_hdemo_sk] +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF0 t_time_sk->[ss_sold_time_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[store_sales] +--------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((time_dim.t_hour = 12) and (time_dim.t_minute < 30)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query89.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query89.out index ecebf270a6..16cd060545 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query89.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query89.out @@ -15,13 +15,13 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter(((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('audio', 'history', 'school-uniforms')) OR (i_category IN ('Men', 'Shoes', 'Sports') AND i_class IN ('pants', 'tennis', 'womens')))) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query90.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query90.out index f76b7b35a7..0507bf60bb 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query90.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query90.out @@ -9,12 +9,12 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF5 hd_demo_sk->[ws_ship_hdemo_sk] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF4 t_time_sk->[ws_sold_time_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF3 wp_web_page_sk->[ws_web_page_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[web_sales] +----------------------------PhysicalOlapScan[web_sales] apply RFs: RF3 RF4 RF5 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((web_page.wp_char_count <= 5200) and (web_page.wp_char_count >= 5000)) @@ -32,12 +32,12 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[ws_ship_hdemo_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF1 t_time_sk->[ws_sold_time_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF0 wp_web_page_sk->[ws_web_page_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[web_sales] +------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 RF2 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((web_page.wp_char_count <= 5200) and (web_page.wp_char_count >= 5000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query91.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query91.out index 120bcaba97..bd6110b917 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query91.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query91.out @@ -9,24 +9,24 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_call_center_sk = call_center.cc_call_center_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_call_center_sk = call_center.cc_call_center_sk)) otherCondition=() build RFs:RF5 cc_call_center_sk->[cr_call_center_sk] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[cr_returned_date_sk] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returning_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returning_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[cr_returning_customer_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[catalog_returns] +------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF3 RF4 RF5 ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF2 c_current_addr_sk->[ca_address_sk] --------------------------------PhysicalProject ----------------------------------filter((customer_address.ca_gmt_offset = -7.00)) -------------------------------------PhysicalOlapScan[customer_address] +------------------------------------PhysicalOlapScan[customer_address] apply RFs: RF2 --------------------------------PhysicalDistribute -----------------------------------hashJoin[INNER_JOIN] hashCondition=((household_demographics.hd_demo_sk = customer.c_current_hdemo_sk))otherCondition=() -------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = customer.c_current_cdemo_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((household_demographics.hd_demo_sk = customer.c_current_hdemo_sk)) otherCondition=() build RFs:RF1 hd_demo_sk->[c_current_hdemo_sk] +------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = customer.c_current_cdemo_sk)) otherCondition=() build RFs:RF0 cd_demo_sk->[c_current_cdemo_sk] --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[customer] +------------------------------------------PhysicalOlapScan[customer] apply RFs: RF0 RF1 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((((customer_demographics.cd_marital_status = 'M') AND (customer_demographics.cd_education_status = 'Unknown')) OR ((customer_demographics.cd_marital_status = 'W') AND (customer_demographics.cd_education_status = 'Advanced Degree')))) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query92.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query92.out index fcdca1b4d9..a55fa8e72f 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query92.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query92.out @@ -12,11 +12,11 @@ PhysicalResultSink ------------------PhysicalQuickSort[LOCAL_SORT] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ws_item_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[web_sales] +--------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((item.i_manufact_id = 714)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query93.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query93.out index 58329f5a05..72211e070b 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query93.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query93.out @@ -8,12 +8,12 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and (store_returns.sr_ticket_number = store_sales.ss_ticket_number))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and (store_returns.sr_ticket_number = store_sales.ss_ticket_number)) otherCondition=() build RFs:RF1 sr_item_sk->[ss_item_sk];RF2 sr_ticket_number->[ss_ticket_number] ------------------PhysicalProject ---------------------PhysicalOlapScan[store_sales] -------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk))otherCondition=() +--------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 +------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk)) otherCondition=() build RFs:RF0 r_reason_sk->[sr_reason_sk] --------------------PhysicalProject -----------------------PhysicalOlapScan[store_returns] +----------------------PhysicalOlapScan[store_returns] apply RFs: RF0 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((reason.r_reason_desc = 'reason 58')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query94.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query94.out index ec08722f34..4e6d82d7ab 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query94.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query94.out @@ -9,20 +9,20 @@ PhysicalResultSink ------------hashAgg[GLOBAL] --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws2.ws_order_number))otherCondition=(( not (ws_warehouse_sk = ws_warehouse_sk))) +------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws2.ws_order_number)) otherCondition=(( not (ws_warehouse_sk = ws_warehouse_sk))) build RFs:RF4 ws_order_number->[ws_order_number] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_sales] ---------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((ws1.ws_order_number = wr1.wr_order_number))otherCondition=() +------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 +--------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((ws1.ws_order_number = wr1.wr_order_number)) otherCondition=() build RFs:RF3 ws_order_number->[wr_order_number] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------PhysicalOlapScan[web_returns] +--------------------------PhysicalOlapScan[web_returns] apply RFs: RF3 ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk))otherCondition=() -----------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() build RFs:RF2 web_site_sk->[ws_web_site_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_ship_date_sk] +----------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[ws_ship_addr_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[web_sales] +--------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 RF2 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((customer_address.ca_state = 'OK')) 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 4b2bd6131d..55fdf59995 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 @@ -3,10 +3,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --PhysicalCteProducer ( cteId=CTEId#0 ) ----PhysicalProject -------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_order_number = ws2.ws_order_number))otherCondition=(( not (ws_warehouse_sk = ws_warehouse_sk))) +------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_order_number = ws2.ws_order_number)) otherCondition=(( not (ws_warehouse_sk = ws_warehouse_sk))) build RFs:RF0 ws_order_number->[ws_order_number] --------PhysicalDistribute ----------PhysicalProject -------------PhysicalOlapScan[web_sales] +------------PhysicalOlapScan[web_sales] apply RFs: RF0 --------PhysicalDistribute ----------PhysicalProject ------------PhysicalOlapScan[web_sales] @@ -19,25 +19,25 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------hashAgg[GLOBAL] ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number))otherCondition=() +--------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) -----------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = web_returns.wr_order_number))otherCondition=() +----------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) otherCondition=() build RFs:RF5 ws_order_number->[wr_order_number] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 wr_order_number->[ws_order_number] ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[web_returns] +--------------------------------PhysicalOlapScan[web_returns] apply RFs: RF5 ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk))otherCondition=() -----------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() build RFs:RF3 web_site_sk->[ws_web_site_sk] +----------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ws_ship_date_sk] +------------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF1 ca_address_sk->[ws_ship_addr_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_sales] +----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((customer_address.ca_state = 'VA')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query96.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query96.out index 896d70bd2b..414dc98426 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query96.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query96.out @@ -7,12 +7,12 @@ PhysicalResultSink --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF1 hd_demo_sk->[ss_hdemo_sk] +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF0 t_time_sk->[ss_sold_time_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[store_sales] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((time_dim.t_hour = 8) and (time_dim.t_minute >= 30)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query97.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query97.out index 626e219d34..bbc900d82c 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query97.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query97.out @@ -7,16 +7,16 @@ PhysicalResultSink --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[FULL_OUTER_JOIN] hashCondition=((ssci.customer_sk = csci.customer_sk) and (ssci.item_sk = csci.item_sk))otherCondition=() +--------------hashJoin[FULL_OUTER_JOIN] hashCondition=((ssci.customer_sk = csci.customer_sk) and (ssci.item_sk = csci.item_sk)) otherCondition=() ----------------PhysicalProject ------------------hashAgg[GLOBAL] --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 ss_sold_date_sk->[d_date_sk] ----------------------------PhysicalProject ------------------------------filter((date_dim.d_month_seq <= 1210) and (date_dim.d_month_seq >= 1199)) ---------------------------------PhysicalOlapScan[date_dim] +--------------------------------PhysicalOlapScan[date_dim] apply RFs: RF1 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter(( not ss_sold_date_sk IS NULL)) @@ -26,10 +26,10 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 cs_sold_date_sk->[d_date_sk] ----------------------------PhysicalProject ------------------------------filter((date_dim.d_month_seq <= 1210) and (date_dim.d_month_seq >= 1199)) ---------------------------------PhysicalOlapScan[date_dim] +--------------------------------PhysicalOlapScan[date_dim] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter(( not cs_sold_date_sk IS NULL)) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query98.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query98.out index 7f20168175..aa5c96dcda 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query98.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query98.out @@ -12,10 +12,10 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ss_item_sk] +--------------------------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] +------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((date_dim.d_date <= '1999-03-07') and (date_dim.d_date >= '1999-02-05')) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query99.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query99.out index 806e90647c..de2a69823d 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query99.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query99.out @@ -8,13 +8,13 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF3 w_warehouse_sk->[cs_warehouse_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_mode_sk = ship_mode.sm_ship_mode_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_call_center_sk = call_center.cc_call_center_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_mode_sk = ship_mode.sm_ship_mode_sk)) otherCondition=() build RFs:RF2 sm_ship_mode_sk->[cs_ship_mode_sk] +----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_call_center_sk = call_center.cc_call_center_sk)) otherCondition=() build RFs:RF1 cc_call_center_sk->[cs_call_center_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_ship_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[catalog_sales] +----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 RF3 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_month_seq <= 1205) and (date_dim.d_month_seq >= 1194)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out index d9a0bb579b..edd2c441da 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out @@ -7,9 +7,9 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ----------------PhysicalProject -------------------PhysicalOlapScan[store_returns] +------------------PhysicalOlapScan[store_returns] apply RFs: RF0 ----------------PhysicalDistribute ------------------PhysicalProject --------------------filter((date_dim.d_year = 2000)) @@ -19,14 +19,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF2 ctr_customer_sk->[c_customer_sk] --------------PhysicalDistribute ----------------PhysicalProject -------------------PhysicalOlapScan[customer] +------------------PhysicalOlapScan[customer] apply RFs: RF2 --------------PhysicalDistribute -----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_store_sk = ctr2.ctr_store_sk))otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) +----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_store_sk = ctr2.ctr_store_sk)) otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = ctr1.ctr_store_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = ctr1.ctr_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ctr_store_sk] ----------------------PhysicalDistribute ------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------PhysicalDistribute diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query10.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query10.out index 3a23b11e57..8ddb91682f 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query10.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query10.out @@ -9,12 +9,12 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ss_customer_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ss_sold_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_sales] +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF4 RF5 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_moy <= 4) and (date_dim.d_moy >= 1) and (date_dim.d_year = 2001)) @@ -22,34 +22,34 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter(($c$1 OR $c$2)) ---------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk))otherCondition=() -----------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +--------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) otherCondition=() +----------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk))otherCondition=() -----------------------------------PhysicalOlapScan[customer_demographics] +--------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) otherCondition=() build RFs:RF3 c_current_cdemo_sk->[cd_demo_sk] +----------------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF3 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[c_current_addr_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[customer] +------------------------------------------PhysicalOlapScan[customer] apply RFs: RF2 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter(ca_county IN ('Cochran County', 'Kandiyohi County', 'Marquette County', 'Storey County', 'Warren County')) ----------------------------------------------PhysicalOlapScan[customer_address] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[web_sales] +--------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((date_dim.d_moy <= 4) and (date_dim.d_moy >= 1) and (date_dim.d_year = 2001)) ------------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_moy <= 4) and (date_dim.d_moy >= 1) and (date_dim.d_year = 2001)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query11.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query11.out index 95346d44d2..e0ef864e5b 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query11.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query11.out @@ -8,11 +8,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF1 c_customer_sk->[ss_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------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] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (2001, 2002)) @@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ws_bill_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ws_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_sales] +------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 RF3 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (2001, 2002)) @@ -42,10 +42,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id))otherCondition=((if((year_total > 0.00), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), 0) > if((year_total > 0.00), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), 0))) +------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id)) otherCondition=((if((year_total > 0.00), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), 0) > if((year_total > 0.00), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), 0))) --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id))otherCondition=() -------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id)) otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id)) otherCondition=() --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((t_s_firstyear.dyear = 2001) and (t_s_firstyear.sale_type = 's') and (t_s_firstyear.year_total > 0.00)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query12.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query12.out index 3900466d2b..e8671ca916 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query12.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query12.out @@ -12,11 +12,11 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ws_item_sk] --------------------------PhysicalDistribute -----------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[web_sales] +--------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((date_dim.d_date <= '1998-05-06') and (date_dim.d_date >= '1998-04-06')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out index f53714fda8..237eb1dee6 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out @@ -5,26 +5,26 @@ PhysicalResultSink ----PhysicalDistribute ------hashAgg[LOCAL] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF4 ss_store_sk->[s_store_sk] ------------PhysicalProject ---------------PhysicalOlapScan[store] +--------------PhysicalOlapScan[store] apply RFs: RF4 ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk))otherCondition=(((((((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = 'Unknown')) AND ((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00))) AND (household_demographics.hd_dep_count = 3)) OR ((((customer_demographics.cd_marital_status = 'S') AND (customer_demographics.cd_education_status = 'College')) AND ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00))) AND (household_demographics.hd_dep_count = 1))) OR ((((customer_demographics.cd_marital_status = 'M') AND (customer_demographics.cd_education_status = '4 yr Degree')) AND ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00))) AND (household_demographics.hd_dep_count = 1)))) +----------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) otherCondition=(((((((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = 'Unknown')) AND ((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00))) AND (household_demographics.hd_dep_count = 3)) OR ((((customer_demographics.cd_marital_status = 'S') AND (customer_demographics.cd_education_status = 'College')) AND ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00))) AND (household_demographics.hd_dep_count = 1))) OR ((((customer_demographics.cd_marital_status = 'M') AND (customer_demographics.cd_education_status = '4 yr Degree')) AND ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00))) AND (household_demographics.hd_dep_count = 1)))) build RFs:RF3 ss_cdemo_sk->[cd_demo_sk] ------------------PhysicalDistribute --------------------PhysicalProject ----------------------filter(((((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = 'Unknown')) OR ((customer_demographics.cd_marital_status = 'S') AND (customer_demographics.cd_education_status = 'College'))) OR ((customer_demographics.cd_marital_status = 'M') AND (customer_demographics.cd_education_status = '4 yr Degree')))) -------------------------PhysicalOlapScan[customer_demographics] +------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF3 ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[ss_hdemo_sk] ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=((((ca_state IN ('KS', 'MI', 'SD') AND ((store_sales.ss_net_profit >= 100.00) AND (store_sales.ss_net_profit <= 200.00))) OR (ca_state IN ('CO', 'MO', 'ND') AND ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 300.00)))) OR (ca_state IN ('NH', 'OH', 'TX') AND ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 250.00))))) +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=((((ca_state IN ('KS', 'MI', 'SD') AND ((store_sales.ss_net_profit >= 100.00) AND (store_sales.ss_net_profit <= 200.00))) OR (ca_state IN ('CO', 'MO', 'ND') AND ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 300.00)))) OR (ca_state IN ('NH', 'OH', 'TX') AND ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 250.00))))) build RFs:RF0 ca_address_sk->[ss_addr_sk] ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter(((((store_sales.ss_net_profit >= 100.00) AND (store_sales.ss_net_profit <= 200.00)) OR ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 300.00))) OR ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 250.00))) and ((((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00)))) -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter(((ca_state IN ('KS', 'MI', 'SD') OR ca_state IN ('CO', 'MO', 'ND')) OR ca_state IN ('NH', 'OH', 'TX')) and (customer_address.ca_country = 'United States')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query14.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query14.out index ffca3cf5b7..398d1a204c 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query14.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query14.out @@ -3,20 +3,20 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --PhysicalCteProducer ( cteId=CTEId#0 ) ----PhysicalProject -------hashJoin[INNER_JOIN] hashCondition=((item.i_brand_id = t.brand_id) and (item.i_category_id = t.category_id) and (item.i_class_id = t.class_id))otherCondition=() +------hashJoin[INNER_JOIN] hashCondition=((item.i_brand_id = t.brand_id) and (item.i_category_id = t.category_id) and (item.i_class_id = t.class_id)) otherCondition=() build RFs:RF6 class_id->[i_class_id];RF7 category_id->[i_category_id];RF8 brand_id->[i_brand_id] --------PhysicalDistribute ----------PhysicalProject -------------PhysicalOlapScan[item] +------------PhysicalOlapScan[item] apply RFs: RF6 RF7 RF8 --------PhysicalIntersect ----------PhysicalDistribute ------------hashAgg[GLOBAL] --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = iss.i_item_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk))otherCondition=() +--------------------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] +--------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((d1.d_year <= 2002) and (d1.d_year >= 2000)) @@ -29,11 +29,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = ics.i_item_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = ics.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[cs_item_sk] ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d2.d_date_sk))otherCondition=() +------------------------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] +----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((d2.d_year <= 2002) and (d2.d_year >= 2000)) @@ -46,11 +46,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = iws.i_item_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = iws.i_item_sk)) otherCondition=() build RFs:RF5 i_item_sk->[ws_item_sk] ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = d3.d_date_sk))otherCondition=() +------------------------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] +----------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 RF5 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((d3.d_year <= 2002) and (d3.d_year >= 2000)) @@ -66,27 +66,27 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------------PhysicalUnion --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------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] +----------------------PhysicalOlapScan[store_sales] apply RFs: RF9 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((date_dim.d_year <= 2002) and (date_dim.d_year >= 2000)) --------------------------PhysicalOlapScan[date_dim] --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------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] +----------------------PhysicalOlapScan[catalog_sales] apply RFs: RF10 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((date_dim.d_year <= 2002) and (date_dim.d_year >= 2000)) --------------------------PhysicalOlapScan[date_dim] --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------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] +----------------------PhysicalOlapScan[web_sales] apply RFs: RF11 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((date_dim.d_year <= 2002) and (date_dim.d_year >= 2000)) @@ -108,14 +108,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------------------PhysicalDistribute ----------------------------------hashAgg[LOCAL] ------------------------------------PhysicalProject ---------------------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((store_sales.ss_item_sk = cross_items.ss_item_sk))otherCondition=() +--------------------------------------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 ) -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF13 i_item_sk->[ss_item_sk] ------------------------------------------PhysicalDistribute ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF12 d_date_sk->[ss_sold_date_sk] ----------------------------------------------PhysicalProject -------------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF12 RF13 ----------------------------------------------PhysicalDistribute ------------------------------------------------PhysicalProject --------------------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 2002)) @@ -134,14 +134,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------------------PhysicalDistribute ----------------------------------hashAgg[LOCAL] ------------------------------------PhysicalProject ---------------------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((catalog_sales.cs_item_sk = cross_items.ss_item_sk))otherCondition=() +--------------------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((catalog_sales.cs_item_sk = cross_items.ss_item_sk)) otherCondition=() build RFs:RF17 cs_item_sk->[ss_item_sk] ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF16 i_item_sk->[cs_item_sk] ------------------------------------------PhysicalDistribute ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF15 d_date_sk->[cs_sold_date_sk] ----------------------------------------------PhysicalProject -------------------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF15 RF16 ----------------------------------------------PhysicalDistribute ------------------------------------------------PhysicalProject --------------------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 2002)) @@ -160,14 +160,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------------------PhysicalDistribute ----------------------------------hashAgg[LOCAL] ------------------------------------PhysicalProject ---------------------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk))otherCondition=() +--------------------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk)) otherCondition=() build RFs:RF20 ws_item_sk->[ss_item_sk] ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF19 i_item_sk->[ws_item_sk] ------------------------------------------PhysicalDistribute ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF18 d_date_sk->[ws_sold_date_sk] ----------------------------------------------PhysicalProject -------------------------------------------------PhysicalOlapScan[web_sales] +------------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF18 RF19 ----------------------------------------------PhysicalDistribute ------------------------------------------------PhysicalProject --------------------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 2002)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query15.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query15.out index 865ce1e148..252a5a386f 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query15.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query15.out @@ -8,21 +8,21 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk))otherCondition=(((substring(ca_zip, 1, 5) IN ('80348', '81792', '83405', '85392', '85460', '85669', '86197', '86475', '88274') OR ca_state IN ('CA', 'GA', 'WA')) OR (catalog_sales.cs_sales_price > 500.00))) +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) otherCondition=(((substring(ca_zip, 1, 5) IN ('80348', '81792', '83405', '85392', '85460', '85669', '86197', '86475', '88274') OR ca_state IN ('CA', 'GA', 'WA')) OR (catalog_sales.cs_sales_price > 500.00))) build RFs:RF2 c_customer_sk->[cs_bill_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_sales] +------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF1 RF2 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((date_dim.d_qoy = 1) and (date_dim.d_year = 2001)) ----------------------------PhysicalOlapScan[date_dim] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[c_current_addr_sk] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------PhysicalOlapScan[customer] +----------------------------PhysicalOlapScan[customer] apply RFs: RF0 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------PhysicalOlapScan[customer_address] diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out index 534a8c0f20..f715eb2136 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out @@ -9,20 +9,20 @@ PhysicalResultSink ------------hashAgg[GLOBAL] --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((cs1.cs_order_number = cs2.cs_order_number))otherCondition=(( not (cs_warehouse_sk = cs_warehouse_sk))) +------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((cs1.cs_order_number = cs2.cs_order_number)) otherCondition=(( not (cs_warehouse_sk = cs_warehouse_sk))) build RFs:RF4 cs_order_number->[cs_order_number] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_sales] ---------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_call_center_sk = call_center.cc_call_center_sk))otherCondition=() -----------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((cs1.cs_order_number = cr1.cr_order_number))otherCondition=() +------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4 +--------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_call_center_sk = call_center.cc_call_center_sk)) otherCondition=() build RFs:RF3 cc_call_center_sk->[cs_call_center_sk] +----------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((cs1.cs_order_number = cr1.cr_order_number)) otherCondition=() build RFs:RF2 cs_order_number->[cr_order_number] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------PhysicalOlapScan[catalog_returns] +----------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF2 ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_ship_date_sk = date_dim.d_date_sk))otherCondition=() -----------------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_ship_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_ship_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_ship_date_sk] +----------------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_ship_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[cs_ship_addr_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF3 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((customer_address.ca_state = 'WV')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out index 0a1d9f2442..a9ca31b6e2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out @@ -9,33 +9,33 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF8 sr_customer_sk->[cs_bill_customer_sk];RF9 sr_item_sk->[cs_item_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk)) otherCondition=() build RFs:RF7 d_date_sk->[cs_sold_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[catalog_sales] +----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF7 RF8 RF9 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter(d_quarter_name IN ('2001Q1', '2001Q2', '2001Q3')) --------------------------------PhysicalOlapScan[date_dim] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF6 s_store_sk->[ss_store_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk)) otherCondition=() build RFs:RF5 i_item_sk->[ss_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() -----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number)) otherCondition=() build RFs:RF2 sr_customer_sk->[ss_customer_sk];RF3 sr_item_sk->[ss_item_sk];RF4 sr_ticket_number->[ss_ticket_number] +----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 RF5 RF6 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((d1.d_quarter_name = '2001Q1')) ------------------------------------------PhysicalOlapScan[date_dim] -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_returns] +--------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF0 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter(d_quarter_name IN ('2001Q1', '2001Q2', '2001Q3')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out index f9581a9be6..ee0413e0c4 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out @@ -10,35 +10,35 @@ PhysicalResultSink --------------hashAgg[LOCAL] ----------------PhysicalRepeat ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF5 cs_item_sk->[i_item_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[item] +------------------------PhysicalOlapScan[item] apply RFs: RF5 ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[cs_sold_date_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[cs_bill_customer_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = cd1.cd_demo_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = cd1.cd_demo_sk)) otherCondition=() build RFs:RF2 cd_demo_sk->[cs_bill_cdemo_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[catalog_sales] +----------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 RF4 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((cd1.cd_education_status = 'Advanced Degree') and (cd1.cd_gender = 'F')) --------------------------------------------PhysicalOlapScan[customer_demographics] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_cdemo_sk = cd2.cd_demo_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_cdemo_sk = cd2.cd_demo_sk)) otherCondition=() build RFs:RF1 c_current_cdemo_sk->[cd_demo_sk] --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[customer_demographics] +------------------------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF1 --------------------------------------PhysicalDistribute -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[c_current_addr_sk] ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter(c_birth_month IN (1, 10, 2, 4, 7, 8)) -------------------------------------------------PhysicalOlapScan[customer] +------------------------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter(ca_state IN ('GA', 'IN', 'ME', 'NC', 'OK', 'WA', 'WY')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query19.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query19.out index 3adb9a508c..e4170d004a 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query19.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query19.out @@ -9,23 +9,23 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=(( not (substring(ca_zip, 1, 5) = substring(s_zip, 1, 5)))) +------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=(( not (substring(ca_zip, 1, 5) = substring(s_zip, 1, 5)))) build RFs:RF4 s_store_sk->[ss_store_sk] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 c_current_addr_sk->[ca_address_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[customer_address] +--------------------------PhysicalOlapScan[customer_address] apply RFs: RF3 ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF2 ss_customer_sk->[c_customer_sk] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[customer] +----------------------------------PhysicalOlapScan[customer] apply RFs: RF2 ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() -------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[store_sales] +----------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF4 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((item.i_manager_id = 2)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query2.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query2.out index af16154cfe..4a45ede0d2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query2.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query2.out @@ -6,11 +6,11 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) ------PhysicalDistribute --------hashAgg[LOCAL] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = wscs.sold_date_sk))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = wscs.sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk,cs_sold_date_sk] --------------PhysicalUnion ----------------PhysicalDistribute ------------------PhysicalProject ---------------------PhysicalOlapScan[web_sales] +--------------------PhysicalOlapScan[web_sales] apply RFs: RF0 ----------------PhysicalDistribute ------------------PhysicalProject --------------------PhysicalOlapScan[catalog_sales] @@ -22,10 +22,10 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) ------PhysicalDistribute --------PhysicalQuickSort[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(d_week_seq2 - 53)))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(d_week_seq2 - 53))) otherCondition=() --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = d_week_seq1))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = d_week_seq1)) otherCondition=() build RFs:RF2 d_week_seq->[d_week_seq] --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) @@ -35,7 +35,7 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) --------------------------PhysicalOlapScan[date_dim] --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = d_week_seq2))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = d_week_seq2)) otherCondition=() build RFs:RF1 d_week_seq->[d_week_seq] --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query20.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query20.out index cd37227b8b..a0dc7ea17e 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query20.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query20.out @@ -12,11 +12,11 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[cs_item_sk] --------------------------PhysicalDistribute -----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((date_dim.d_date <= '2002-02-25') and (date_dim.d_date >= '2002-01-26')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query21.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query21.out index 9b679a5643..1e1c0d9793 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query21.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query21.out @@ -9,11 +9,11 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF2 w_warehouse_sk->[inv_warehouse_sk] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = inventory.inv_item_sk))otherCondition=() ---------------------------PhysicalOlapScan[inventory] +----------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[inv_date_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = inventory.inv_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[inv_item_sk] +--------------------------PhysicalOlapScan[inventory] apply RFs: RF0 RF1 RF2 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((item.i_current_price <= 1.49) and (item.i_current_price >= 0.99)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query22.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query22.out index 40b5cf6891..ca25b08047 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query22.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query22.out @@ -10,10 +10,10 @@ PhysicalResultSink --------------hashAgg[LOCAL] ----------------PhysicalRepeat ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[inv_date_sk] +----------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[inv_item_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[inventory] +--------------------------PhysicalOlapScan[inventory] apply RFs: RF0 RF1 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------PhysicalOlapScan[item] diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query23.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query23.out index 1aaee459c4..eefbd37e7d 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query23.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query23.out @@ -8,11 +8,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------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=() +--------------------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] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (2000, 2001, 2002, 2003)) @@ -26,10 +26,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------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=() +--------------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] +--------------------PhysicalOlapScan[store_sales] apply RFs: RF4 ----------------PhysicalDistribute ------------------PhysicalProject --------------------PhysicalOlapScan[customer] @@ -41,11 +41,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalProject ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------------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=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter(d_year IN (2000, 2001, 2002, 2003)) @@ -61,17 +61,17 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------hashAgg[LOCAL] ----------------PhysicalUnion ------------------PhysicalProject ---------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk))otherCondition=() +--------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk)) otherCondition=() ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = best_ss_customer.c_customer_sk))otherCondition=() +--------------------------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=() +------------------------------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] +----------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 RF6 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_moy = 5) and (date_dim.d_year = 2000)) @@ -80,17 +80,17 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#2 ) ------------------PhysicalProject ---------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk))otherCondition=() +--------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk)) otherCondition=() ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = best_ss_customer.c_customer_sk))otherCondition=() +--------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = best_ss_customer.c_customer_sk)) otherCondition=() build RFs:RF8 c_customer_sk->[ws_bill_customer_sk] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF7 d_date_sk->[ws_sold_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_sales] +----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF7 RF8 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_moy = 5) and (date_dim.d_year = 2000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query24.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query24.out index 61e8e7e6ba..893c2c0b7e 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query24.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query24.out @@ -7,25 +7,25 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------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=() +--------------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=() -----------------------hashJoin[INNER_JOIN] hashCondition=((store.s_zip = customer_address.ca_zip) and (store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------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=() +----------------------------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] +--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF3 RF4 RF5 RF6 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((store.s_market_id = 8)) -------------------------------------PhysicalOlapScan[store] +------------------------------------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)))) +--------------------------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] +--------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalOlapScan[customer_address] diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query25.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query25.out index f61b5e790c..d1188acc23 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query25.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query25.out @@ -8,33 +8,33 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF8 sr_customer_sk->[cs_bill_customer_sk];RF9 sr_item_sk->[cs_item_sk] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk)) otherCondition=() build RFs:RF7 d_date_sk->[cs_sold_date_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[catalog_sales] +--------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF7 RF8 RF9 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((d3.d_moy <= 10) and (d3.d_moy >= 4) and (d3.d_year = 2000)) ------------------------------PhysicalOlapScan[date_dim] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF6 s_store_sk->[ss_store_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk)) otherCondition=() build RFs:RF5 i_item_sk->[ss_item_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() ---------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number)) otherCondition=() build RFs:RF2 sr_customer_sk->[ss_customer_sk];RF3 sr_item_sk->[ss_item_sk];RF4 sr_ticket_number->[ss_ticket_number] +--------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 RF5 RF6 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((d1.d_moy = 4) and (d1.d_year = 2000)) ----------------------------------------PhysicalOlapScan[date_dim] ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_returns] +------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF0 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((d2.d_moy <= 10) and (d2.d_moy >= 4) and (d2.d_year = 2000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query26.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query26.out index 4f74381a99..87c1d759fe 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query26.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query26.out @@ -8,15 +8,15 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[cs_item_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF2 p_promo_sk->[cs_promo_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = customer_demographics.cd_demo_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF0 cd_demo_sk->[cs_bill_cdemo_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 RF3 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((customer_demographics.cd_education_status = 'Unknown') and (customer_demographics.cd_gender = 'M') and (customer_demographics.cd_marital_status = 'S')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out index 34fb5e3064..74b008f4c7 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out @@ -11,15 +11,15 @@ PhysicalResultSink ----------------hashAgg[LOCAL] ------------------PhysicalRepeat --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF3 s_store_sk->[ss_store_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ss_item_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = customer_demographics.cd_demo_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF0 cd_demo_sk->[ss_cdemo_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF3 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((customer_demographics.cd_education_status = 'Secondary') and (customer_demographics.cd_gender = 'F') and (customer_demographics.cd_marital_status = 'D')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query29.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query29.out index 33bc2edb51..f8a0352d6f 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query29.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query29.out @@ -8,27 +8,27 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = d3.d_date_sk)) otherCondition=() build RFs:RF9 d_date_sk->[cs_sold_date_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_customer_sk = catalog_sales.cs_bill_customer_sk) and (store_returns.sr_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF7 sr_customer_sk->[cs_bill_customer_sk];RF8 sr_item_sk->[cs_item_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_sales] +------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF7 RF8 RF9 ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF6 s_store_sk->[ss_store_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk)) otherCondition=() build RFs:RF5 i_item_sk->[ss_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() -----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number)) otherCondition=() build RFs:RF2 sr_customer_sk->[ss_customer_sk];RF3 sr_item_sk->[ss_item_sk];RF4 sr_ticket_number->[ss_ticket_number] +----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 RF5 RF6 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((d1.d_moy = 4) and (d1.d_year = 1999)) ------------------------------------------PhysicalOlapScan[date_dim] -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_returns] +--------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF0 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((d2.d_moy <= 7) and (d2.d_moy >= 4) and (d2.d_year = 1999)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query3.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query3.out index f175b13fc7..c093dd8602 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query3.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query3.out @@ -9,11 +9,11 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] --------------------PhysicalDistribute -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[store_sales] +--------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((item.i_manufact_id = 816)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out index b54a7316fa..c734431a1a 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out @@ -7,12 +7,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returning_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returning_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF1 ca_address_sk->[wr_returning_addr_sk] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[wr_returned_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_returns] +------------------------PhysicalOlapScan[web_returns] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((date_dim.d_year = 2002)) @@ -25,15 +25,15 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_state = ctr2.ctr_state))otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) +------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_state = ctr2.ctr_state)) otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ctr_customer_sk] ------------------PhysicalDistribute --------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[c_current_addr_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[customer] +------------------------PhysicalOlapScan[customer] apply RFs: RF2 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((customer_address.ca_state = 'IN')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query31.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query31.out index f1a5d581a4..88eaa73313 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query31.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query31.out @@ -6,12 +6,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------hashAgg[LOCAL] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF1 ca_address_sk->[ss_addr_sk] --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------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] +----------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((ss.d_year = 2000) and d_qoy IN (1, 2, 3)) @@ -25,12 +25,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 ca_address_sk->[ws_bill_addr_sk] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ws_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_sales] +------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 RF3 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((ws.d_year = 2000) and d_qoy IN (1, 2, 3)) @@ -43,20 +43,20 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------PhysicalQuickSort[LOCAL_SORT] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((ws1.ca_county = ws3.ca_county))otherCondition=((if((web_sales > 0.00), (cast(web_sales as DOUBLE) / cast(web_sales as DOUBLE)), NULL) > if((store_sales > 0.00), (cast(store_sales as DOUBLE) / cast(store_sales as DOUBLE)), NULL))) +--------------hashJoin[INNER_JOIN] hashCondition=((ws1.ca_county = ws3.ca_county)) otherCondition=((if((web_sales > 0.00), (cast(web_sales as DOUBLE) / cast(web_sales as DOUBLE)), NULL) > if((store_sales > 0.00), (cast(store_sales as DOUBLE) / cast(store_sales as DOUBLE)), NULL))) ----------------PhysicalDistribute ------------------PhysicalProject --------------------filter((ws3.d_qoy = 3) and (ws3.d_year = 2000)) ----------------------PhysicalCteConsumer ( cteId=CTEId#1 ) ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((ss2.ca_county = ss3.ca_county))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((ss2.ca_county = ss3.ca_county)) otherCondition=() --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((ss3.d_qoy = 3) and (ss3.d_year = 2000)) --------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ---------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ca_county = ws2.ca_county))otherCondition=((if((web_sales > 0.00), (cast(web_sales as DOUBLE) / cast(web_sales as DOUBLE)), NULL) > if((store_sales > 0.00), (cast(store_sales as DOUBLE) / cast(store_sales as DOUBLE)), NULL))) -----------------------hashJoin[INNER_JOIN] hashCondition=((ss1.ca_county = ws1.ca_county))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((ss1.ca_county = ss2.ca_county))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ca_county = ws2.ca_county)) otherCondition=((if((web_sales > 0.00), (cast(web_sales as DOUBLE) / cast(web_sales as DOUBLE)), NULL) > if((store_sales > 0.00), (cast(store_sales as DOUBLE) / cast(store_sales as DOUBLE)), NULL))) +----------------------hashJoin[INNER_JOIN] hashCondition=((ss1.ca_county = ws1.ca_county)) otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((ss1.ca_county = ss2.ca_county)) otherCondition=() --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((ss1.d_qoy = 1) and (ss1.d_year = 2000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query32.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query32.out index 42975bbb56..fa698587ba 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query32.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query32.out @@ -12,11 +12,11 @@ PhysicalResultSink ------------------PhysicalQuickSort[LOCAL_SORT] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[cs_item_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((item.i_manufact_id = 29)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query33.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query33.out index e7aed1c8cf..32216e5262 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query33.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query33.out @@ -13,15 +13,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ss_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[ss_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 1) and (date_dim.d_year = 2002)) @@ -31,10 +31,10 @@ PhysicalResultSink --------------------------------------filter((customer_address.ca_gmt_offset = -5.00)) ----------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute -------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id))otherCondition=() +------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() build RFs:RF0 i_manufact_id->[i_manufact_id] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[item] +------------------------------------PhysicalOlapScan[item] apply RFs: RF0 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Home')) @@ -44,15 +44,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF7 i_item_sk->[cs_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF6 ca_address_sk->[cs_bill_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 RF6 RF7 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 1) and (date_dim.d_year = 2002)) @@ -62,10 +62,10 @@ PhysicalResultSink --------------------------------------filter((customer_address.ca_gmt_offset = -5.00)) ----------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute -------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id))otherCondition=() +------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() build RFs:RF4 i_manufact_id->[i_manufact_id] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[item] +------------------------------------PhysicalOlapScan[item] apply RFs: RF4 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Home')) @@ -73,19 +73,19 @@ PhysicalResultSink ----------------PhysicalProject ------------------hashAgg[LOCAL] --------------------PhysicalProject -----------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id))otherCondition=() +----------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() build RFs:RF11 i_manufact_id->[i_manufact_id] ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF10 ws_item_sk->[i_item_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[item] +------------------------------PhysicalOlapScan[item] apply RFs: RF10 RF11 ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF9 ca_address_sk->[ws_bill_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF8 RF9 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 1) and (date_dim.d_year = 2002)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query34.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query34.out index 56bf599cb4..ac5d62c541 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query34.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query34.out @@ -5,21 +5,21 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalQuickSort[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 ss_customer_sk->[c_customer_sk] ------------PhysicalProject ---------------PhysicalOlapScan[customer] +--------------PhysicalOlapScan[customer] apply RFs: RF3 ------------PhysicalDistribute --------------filter((dn.cnt <= 20) and (dn.cnt >= 15)) ----------------hashAgg[GLOBAL] ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF1 hd_demo_sk->[ss_hdemo_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((((date_dim.d_dom >= 1) AND (date_dim.d_dom <= 3)) OR ((date_dim.d_dom >= 25) AND (date_dim.d_dom <= 28))) and d_year IN (1998, 1999, 2000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query35.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query35.out index ee5513aad0..97736adff6 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query35.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query35.out @@ -9,12 +9,12 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ss_customer_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ss_sold_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_sales] +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF4 RF5 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year = 2001)) @@ -22,16 +22,16 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter(($c$1 OR $c$2)) ---------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk))otherCondition=() -----------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +--------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) otherCondition=() +----------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) otherCondition=() build RFs:RF3 cd_demo_sk->[c_current_cdemo_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[c_current_addr_sk] ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[customer] +--------------------------------------------PhysicalOlapScan[customer] apply RFs: RF2 RF3 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------PhysicalOlapScan[customer_address] @@ -40,18 +40,18 @@ PhysicalResultSink --------------------------------------PhysicalOlapScan[customer_demographics] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[web_sales] +--------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year = 2001)) ------------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year = 2001)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query36.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query36.out index 3680845786..3539aaace6 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query36.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query36.out @@ -15,14 +15,14 @@ PhysicalResultSink ------------------------hashAgg[LOCAL] --------------------------PhysicalRepeat ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ss_item_sk] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk] ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter((d1.d_year = 2002)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query37.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query37.out index 1d3cf22831..3ac16407fa 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query37.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query37.out @@ -8,17 +8,17 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[cs_item_sk] ------------------PhysicalProject ---------------------PhysicalOlapScan[catalog_sales] +--------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = inventory.inv_date_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = inventory.inv_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[inv_date_sk] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[inv_item_sk] ----------------------------PhysicalProject ------------------------------filter((inventory.inv_quantity_on_hand <= 500) and (inventory.inv_quantity_on_hand >= 100)) ---------------------------------PhysicalOlapScan[inventory] +--------------------------------PhysicalOlapScan[inventory] apply RFs: RF0 RF1 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((item.i_current_price <= 75.00) and (item.i_current_price >= 45.00) and i_manufact_id IN (1000, 707, 747, 856)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query38.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query38.out index b0418929d3..b531ce2990 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query38.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query38.out @@ -12,12 +12,12 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF1 c_customer_sk->[ss_customer_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_month_seq <= 1194) and (date_dim.d_month_seq >= 1183)) @@ -29,12 +29,12 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[cs_bill_customer_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[cs_sold_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[catalog_sales] +----------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_month_seq <= 1194) and (date_dim.d_month_seq >= 1183)) @@ -46,12 +46,12 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ws_bill_customer_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_sales] +----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 RF5 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_month_seq <= 1194) and (date_dim.d_month_seq >= 1183)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query39.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query39.out index e8f8fe1db9..7e25a27c4d 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query39.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query39.out @@ -8,11 +8,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF2 w_warehouse_sk->[inv_warehouse_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------PhysicalOlapScan[inventory] +--------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[inv_item_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 = 1998) and d_moy IN (1, 2)) @@ -28,7 +28,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------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=() +------------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.d_moy = 1)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query4.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query4.out index 2f8fc5cc02..01805c90e4 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query4.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query4.out @@ -8,11 +8,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF1 c_customer_sk->[ss_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------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] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1999, 2000)) @@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = catalog_sales.cs_bill_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = catalog_sales.cs_bill_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[cs_bill_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[cs_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_sales] +------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1999, 2000)) @@ -42,11 +42,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ws_bill_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_sales] +------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 RF5 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1999, 2000)) @@ -59,14 +59,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id))otherCondition=((if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL) > if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL))) +------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id)) otherCondition=((if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL) > if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL))) --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id)) otherCondition=() ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id))otherCondition=((if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL) > if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL))) +--------------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id)) otherCondition=((if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL) > if((year_total > 0.000000), (cast(year_total as DOUBLE) / cast(year_total as DOUBLE)), NULL))) ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_c_secyear.customer_id))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_c_firstyear.customer_id))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_c_secyear.customer_id)) otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_c_firstyear.customer_id)) otherCondition=() ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((t_s_firstyear.dyear = 1999) and (t_s_firstyear.sale_type = 's') and (t_s_firstyear.year_total > 0.000000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query40.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query40.out index abb63d88ef..bf14602045 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query40.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query40.out @@ -8,15 +8,15 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF4 w_warehouse_sk->[cs_warehouse_sk] ------------------PhysicalProject ---------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number))otherCondition=() +--------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number)) otherCondition=() build RFs:RF2 cs_order_number->[cr_order_number];RF3 cs_item_sk->[cr_item_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_returns] -----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk))otherCondition=() +------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF2 RF3 +----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[cs_item_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[catalog_sales] +----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF4 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((item.i_current_price <= 1.49) and (item.i_current_price >= 0.99)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query41.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query41.out index 37cf369efc..584dda5785 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query41.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query41.out @@ -8,10 +8,10 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((item.i_manufact = i1.i_manufact))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((item.i_manufact = i1.i_manufact)) otherCondition=() build RFs:RF0 i_manufact->[i_manufact] ------------------PhysicalProject --------------------filter((i1.i_manufact_id <= 788) and (i1.i_manufact_id >= 748)) -----------------------PhysicalOlapScan[item] +----------------------PhysicalOlapScan[item] apply RFs: RF0 ------------------PhysicalDistribute --------------------PhysicalProject ----------------------filter((item_cnt > 0)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query42.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query42.out index f171008a2f..7d6239b062 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query42.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query42.out @@ -8,10 +8,10 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] --------------------PhysicalProject -----------------------PhysicalOlapScan[store_sales] +----------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((item.i_manager_id = 1)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query43.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query43.out index 2de89e8dfb..445a381983 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query43.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query43.out @@ -8,11 +8,11 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ss_store_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[store_sales] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((date_dim.d_year = 2000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query44.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query44.out index 2f8a258fe9..2c3fc9a8c2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query44.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query44.out @@ -5,12 +5,12 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((asceding.rnk = descending.rnk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((asceding.rnk = descending.rnk)) otherCondition=() ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((i1.i_item_sk = asceding.item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((i1.i_item_sk = asceding.item_sk)) otherCondition=() build RFs:RF1 item_sk->[i_item_sk] ------------------PhysicalProject ---------------------PhysicalOlapScan[item] +--------------------PhysicalOlapScan[item] apply RFs: RF1 ------------------PhysicalDistribute --------------------PhysicalProject ----------------------filter((rnk < 11)) @@ -39,9 +39,9 @@ PhysicalResultSink ------------------------------------------------------filter((store_sales.ss_store_sk = 146) and ss_addr_sk IS NULL) --------------------------------------------------------PhysicalOlapScan[store_sales] ------------PhysicalDistribute ---------------hashJoin[INNER_JOIN] hashCondition=((i2.i_item_sk = descending.item_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((i2.i_item_sk = descending.item_sk)) otherCondition=() build RFs:RF0 item_sk->[i_item_sk] ----------------PhysicalProject -------------------PhysicalOlapScan[item] +------------------PhysicalOlapScan[item] apply RFs: RF0 ----------------PhysicalDistribute ------------------PhysicalProject --------------------filter((rnk < 11)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query45.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query45.out index a067375700..c547ef0f99 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query45.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query45.out @@ -9,16 +9,16 @@ PhysicalResultSink ------------hashAgg[LOCAL] --------------PhysicalProject ----------------filter((substring(ca_zip, 1, 5) IN ('80348', '81792', '83405', '85392', '85460', '85669', '86197', '86475', '88274') OR $c$1)) -------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ws_bill_customer_sk] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ws_item_sk] ------------------------------PhysicalDistribute ---------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[web_sales] +------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 RF2 RF3 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_qoy = 2) and (date_dim.d_year = 2000)) @@ -28,10 +28,10 @@ PhysicalResultSink ----------------------------------PhysicalOlapScan[item] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[c_current_addr_sk] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[customer] +----------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------PhysicalOlapScan[customer_address] diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query46.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query46.out index 7290b1d3d2..4cdaf1c9cc 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query46.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query46.out @@ -5,20 +5,20 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk))otherCondition=(( not (ca_city = bought_city))) +----------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk)) otherCondition=(( not (ca_city = bought_city))) build RFs:RF5 c_customer_sk->[ss_customer_sk] ------------PhysicalDistribute --------------PhysicalProject ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF4 ca_address_sk->[ss_addr_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF3 s_store_sk->[ss_store_sk] +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[ss_hdemo_sk] ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 RF5 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter(d_dow IN (0, 6) and d_year IN (1999, 2000, 2001)) @@ -35,10 +35,10 @@ PhysicalResultSink ------------------------PhysicalProject --------------------------PhysicalOlapScan[customer_address] ------------PhysicalDistribute ---------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = current_addr.ca_address_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = current_addr.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[c_current_addr_sk] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------PhysicalOlapScan[customer] +--------------------PhysicalOlapScan[customer] apply RFs: RF0 ----------------PhysicalDistribute ------------------PhysicalProject --------------------PhysicalOlapScan[customer_address] diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query47.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query47.out index e9bb70dad0..0e2a180d6d 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query47.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query47.out @@ -13,12 +13,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ss_item_sk] +--------------------------------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] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((((date_dim.d_year = 2001) OR ((date_dim.d_year = 2000) AND (date_dim.d_moy = 12))) OR ((date_dim.d_year = 2002) AND (date_dim.d_moy = 1)))) @@ -35,8 +35,8 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------PhysicalTopN[LOCAL_SORT] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((v1.i_brand = v1_lag.i_brand) and (v1.i_category = v1_lag.i_category) and (v1.rn = expr_(rn + 1)) and (v1.s_company_name = v1_lag.s_company_name) and (v1.s_store_name = v1_lag.s_store_name))otherCondition=() -----------------hashJoin[INNER_JOIN] hashCondition=((v1.i_brand = v1_lead.i_brand) and (v1.i_category = v1_lead.i_category) and (v1.rn = expr_(rn - 1)) and (v1.s_company_name = v1_lead.s_company_name) and (v1.s_store_name = v1_lead.s_store_name))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((v1.i_brand = v1_lag.i_brand) and (v1.i_category = v1_lag.i_category) and (v1.rn = expr_(rn + 1)) and (v1.s_company_name = v1_lag.s_company_name) and (v1.s_store_name = v1_lag.s_store_name)) otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((v1.i_brand = v1_lead.i_brand) and (v1.i_category = v1_lead.i_category) and (v1.rn = expr_(rn - 1)) and (v1.s_company_name = v1_lead.s_company_name) and (v1.s_store_name = v1_lead.s_store_name)) otherCondition=() ------------------PhysicalDistribute --------------------PhysicalProject ----------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out index 0e1041e12f..ab5c410edd 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out @@ -5,18 +5,18 @@ PhysicalResultSink ----PhysicalDistribute ------hashAgg[LOCAL] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF3 s_store_sk->[ss_store_sk] ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------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] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=((((ca_state IN ('IA', 'MD', 'MN') AND ((store_sales.ss_net_profit >= 0.00) AND (store_sales.ss_net_profit <= 2000.00))) OR (ca_state IN ('IL', 'TX', 'VA') AND ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 3000.00)))) OR (ca_state IN ('IN', 'MI', 'WI') AND ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 25000.00))))) +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=((((ca_state IN ('IA', 'MD', 'MN') AND ((store_sales.ss_net_profit >= 0.00) AND (store_sales.ss_net_profit <= 2000.00))) OR (ca_state IN ('IL', 'TX', 'VA') AND ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 3000.00)))) OR (ca_state IN ('IN', 'MI', 'WI') AND ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 25000.00))))) build RFs:RF1 ca_address_sk->[ss_addr_sk] ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk))otherCondition=((((((customer_demographics.cd_marital_status = 'U') AND (customer_demographics.cd_education_status = 'Primary')) AND ((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00))) OR (((customer_demographics.cd_marital_status = 'W') AND (customer_demographics.cd_education_status = 'College')) AND ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00)))) OR (((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = '2 yr Degree')) AND ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00))))) +--------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) otherCondition=((((((customer_demographics.cd_marital_status = 'U') AND (customer_demographics.cd_education_status = 'Primary')) AND ((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00))) OR (((customer_demographics.cd_marital_status = 'W') AND (customer_demographics.cd_education_status = 'College')) AND ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00)))) OR (((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = '2 yr Degree')) AND ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00))))) build RFs:RF0 cd_demo_sk->[ss_cdemo_sk] ----------------------------PhysicalProject ------------------------------filter(((((store_sales.ss_net_profit >= 0.00) AND (store_sales.ss_net_profit <= 2000.00)) OR ((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 3000.00))) OR ((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 25000.00))) and ((((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sales_price >= 150.00) AND (store_sales.ss_sales_price <= 200.00)))) ---------------------------------PhysicalOlapScan[store_sales] +--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF3 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter(((((customer_demographics.cd_marital_status = 'U') AND (customer_demographics.cd_education_status = 'Primary')) OR ((customer_demographics.cd_marital_status = 'W') AND (customer_demographics.cd_education_status = 'College'))) OR ((customer_demographics.cd_marital_status = 'D') AND (customer_demographics.cd_education_status = '2 yr Degree')))) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query49.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query49.out index 26c4be6005..b3ae487ebe 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query49.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query49.out @@ -22,14 +22,14 @@ PhysicalResultSink --------------------------------------PhysicalDistribute ----------------------------------------hashAgg[LOCAL] ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((ws.ws_item_sk = wr.wr_item_sk) and (ws.ws_order_number = wr.wr_order_number))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((ws.ws_item_sk = wr.wr_item_sk) and (ws.ws_order_number = wr.wr_order_number)) otherCondition=() build RFs:RF1 ws_order_number->[wr_order_number];RF2 ws_item_sk->[wr_item_sk] ----------------------------------------------PhysicalProject ------------------------------------------------filter((wr.wr_return_amt > 10000.00)) ---------------------------------------------------PhysicalOlapScan[web_returns] -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((ws.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------------PhysicalOlapScan[web_returns] apply RFs: RF1 RF2 +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((ws.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk] ------------------------------------------------PhysicalProject --------------------------------------------------filter((ws.ws_net_paid > 0.00) and (ws.ws_net_profit > 1.00) and (ws.ws_quantity > 0)) -----------------------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject ----------------------------------------------------filter((date_dim.d_moy = 12) and (date_dim.d_year = 1999)) @@ -48,14 +48,14 @@ PhysicalResultSink --------------------------------------PhysicalDistribute ----------------------------------------hashAgg[LOCAL] ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs.cs_item_sk = cr.cr_item_sk) and (cs.cs_order_number = cr.cr_order_number))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs.cs_item_sk = cr.cr_item_sk) and (cs.cs_order_number = cr.cr_order_number)) otherCondition=() build RFs:RF4 cs_order_number->[cr_order_number];RF5 cs_item_sk->[cr_item_sk] ----------------------------------------------PhysicalProject ------------------------------------------------filter((cr.cr_return_amount > 10000.00)) ---------------------------------------------------PhysicalOlapScan[catalog_returns] -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF4 RF5 +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF3 d_date_sk->[cs_sold_date_sk] ------------------------------------------------PhysicalProject --------------------------------------------------filter((cs.cs_net_paid > 0.00) and (cs.cs_net_profit > 1.00) and (cs.cs_quantity > 0)) -----------------------------------------------------PhysicalOlapScan[catalog_sales] +----------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF3 ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject ----------------------------------------------------filter((date_dim.d_moy = 12) and (date_dim.d_year = 1999)) @@ -74,14 +74,14 @@ PhysicalResultSink --------------------------------------PhysicalDistribute ----------------------------------------hashAgg[LOCAL] ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((sts.ss_item_sk = sr.sr_item_sk) and (sts.ss_ticket_number = sr.sr_ticket_number))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((sts.ss_item_sk = sr.sr_item_sk) and (sts.ss_ticket_number = sr.sr_ticket_number)) otherCondition=() build RFs:RF7 ss_ticket_number->[sr_ticket_number];RF8 ss_item_sk->[sr_item_sk] ----------------------------------------------PhysicalProject ------------------------------------------------filter((sr.sr_return_amt > 10000.00)) ---------------------------------------------------PhysicalOlapScan[store_returns] -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((sts.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF7 RF8 +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((sts.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[ss_sold_date_sk] ------------------------------------------------PhysicalProject --------------------------------------------------filter((sts.ss_net_paid > 0.00) and (sts.ss_net_profit > 1.00) and (sts.ss_quantity > 0)) -----------------------------------------------------PhysicalOlapScan[store_sales] +----------------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF6 ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject ----------------------------------------------------filter((date_dim.d_moy = 12) and (date_dim.d_year = 1999)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query5.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query5.out index 2f84377c34..73a6975794 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query5.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query5.out @@ -15,13 +15,13 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.store_sk = store.s_store_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.store_sk = store.s_store_sk)) otherCondition=() --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk,sr_returned_date_sk] ------------------------------------PhysicalUnion --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------PhysicalOlapScan[store_returns] @@ -37,14 +37,14 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.page_sk = catalog_page.cp_catalog_page_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.page_sk = catalog_page.cp_catalog_page_sk)) otherCondition=() --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk,cr_returned_date_sk] --------------------------------------PhysicalUnion ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF1 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------PhysicalOlapScan[catalog_returns] @@ -60,18 +60,18 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.wsr_web_site_sk = web_site.web_site_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.wsr_web_site_sk = web_site.web_site_sk)) otherCondition=() --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((salesreturns.date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk,wr_returned_date_sk] ------------------------------------PhysicalUnion --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[web_sales] +------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_item_sk = web_sales.ws_item_sk) and (web_returns.wr_order_number = web_sales.ws_order_number))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_item_sk = web_sales.ws_item_sk) and (web_returns.wr_order_number = web_sales.ws_order_number)) otherCondition=() build RFs:RF2 wr_item_sk->[ws_item_sk];RF3 wr_order_number->[ws_order_number] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 RF3 --------------------------------------------PhysicalProject ----------------------------------------------PhysicalOlapScan[web_returns] ------------------------------------PhysicalDistribute diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query50.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query50.out index 86484910b6..cec56471cf 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query50.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query50.out @@ -8,17 +8,17 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF5 s_store_sk->[ss_store_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ss_sold_date_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = store_returns.sr_customer_sk) and (store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number)) otherCondition=() build RFs:RF1 sr_customer_sk->[ss_customer_sk];RF2 sr_item_sk->[ss_item_sk];RF3 sr_ticket_number->[ss_ticket_number] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[store_sales] -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk))otherCondition=() +------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 RF5 +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[store_returns] +--------------------------------PhysicalOlapScan[store_returns] apply RFs: RF0 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((d2.d_moy = 8) and (d2.d_year = 2001)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query51.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query51.out index d6e8883101..ecf279836c 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query51.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query51.out @@ -10,7 +10,7 @@ PhysicalResultSink --------------PhysicalQuickSort[LOCAL_SORT] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[FULL_OUTER_JOIN] hashCondition=((web.d_date = store.d_date) and (web.item_sk = store.item_sk))otherCondition=() +--------------------hashJoin[FULL_OUTER_JOIN] hashCondition=((web.d_date = store.d_date) and (web.item_sk = store.item_sk)) otherCondition=() ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------PhysicalWindow @@ -21,9 +21,9 @@ PhysicalResultSink ------------------------------------PhysicalDistribute --------------------------------------hashAgg[LOCAL] ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[store_sales] +----------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject ------------------------------------------------filter((date_dim.d_month_seq <= 1227) and (date_dim.d_month_seq >= 1216)) @@ -38,9 +38,9 @@ PhysicalResultSink ------------------------------------PhysicalDistribute --------------------------------------hashAgg[LOCAL] ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject ------------------------------------------------filter((date_dim.d_month_seq <= 1227) and (date_dim.d_month_seq >= 1216)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query52.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query52.out index 526e12a38e..5dda178baf 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query52.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query52.out @@ -9,10 +9,10 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((dt.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[store_sales] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((item.i_manager_id = 1)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query53.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query53.out index 9ed8ec60fa..ea24cedf42 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query53.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query53.out @@ -14,15 +14,15 @@ PhysicalResultSink ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter((((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'reference', 'self-help')) AND i_brand IN ('exportiunivamalg #9', 'scholaramalgamalg #14', 'scholaramalgamalg #7', 'scholaramalgamalg #9')) OR ((i_category IN ('Men', 'Music', 'Women') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants')) AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query54.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query54.out index dfcd1c03d6..6e08f0ef41 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query54.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query54.out @@ -16,37 +16,37 @@ PhysicalResultSink --------------------------NestedLoopJoin[INNER_JOIN](cast(d_month_seq as BIGINT) <= (d_month_seq + 3)) ----------------------------NestedLoopJoin[INNER_JOIN](cast(d_month_seq as BIGINT) >= (d_month_seq + 1)) ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[ss_sold_date_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((my_customers.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((my_customers.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ss_customer_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF5 RF6 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_county = store.s_county) and (customer_address.ca_state = store.s_state))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_county = store.s_county) and (customer_address.ca_state = store.s_state)) otherCondition=() build RFs:RF3 s_county->[ca_county];RF4 s_state->[ca_state] ----------------------------------------------PhysicalDistribute -------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((my_customers.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((my_customers.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF2 c_current_addr_sk->[ca_address_sk] --------------------------------------------------PhysicalProject -----------------------------------------------------PhysicalOlapScan[customer_address] +----------------------------------------------------PhysicalOlapScan[customer_address] apply RFs: RF2 RF3 RF4 --------------------------------------------------PhysicalDistribute ----------------------------------------------------PhysicalProject ------------------------------------------------------hashAgg[GLOBAL] --------------------------------------------------------PhysicalDistribute ----------------------------------------------------------hashAgg[LOCAL] ------------------------------------------------------------PhysicalProject ---------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = cs_or_ws_sales.customer_sk))otherCondition=() +--------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = cs_or_ws_sales.customer_sk)) otherCondition=() build RFs:RF1 customer_sk->[c_customer_sk] ----------------------------------------------------------------PhysicalProject -------------------------------------------------------------------PhysicalOlapScan[customer] +------------------------------------------------------------------PhysicalOlapScan[customer] apply RFs: RF1 ----------------------------------------------------------------PhysicalDistribute ------------------------------------------------------------------PhysicalProject ---------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs_or_ws_sales.sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs_or_ws_sales.sold_date_sk = date_dim.d_date_sk)) otherCondition=() ----------------------------------------------------------------------PhysicalProject -------------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs_or_ws_sales.item_sk = item.i_item_sk))otherCondition=() +------------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((cs_or_ws_sales.item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[cs_item_sk,ws_item_sk] --------------------------------------------------------------------------PhysicalUnion ----------------------------------------------------------------------------PhysicalDistribute ------------------------------------------------------------------------------PhysicalProject ---------------------------------------------------------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 ----------------------------------------------------------------------------PhysicalDistribute ------------------------------------------------------------------------------PhysicalProject --------------------------------------------------------------------------------PhysicalOlapScan[web_sales] diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query55.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query55.out index f5385d84bd..315bb92b5a 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query55.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query55.out @@ -9,10 +9,10 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[store_sales] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((item.i_manager_id = 100)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query56.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query56.out index f93cb183b1..376ea67c03 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query56.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query56.out @@ -13,23 +13,23 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 ca_address_sk->[ss_addr_sk] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ss_item_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[store_sales] +----------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((date_dim.d_moy = 2) and (date_dim.d_year = 2000)) --------------------------------------------PhysicalOlapScan[date_dim] --------------------------------PhysicalDistribute -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF0 i_item_id->[i_item_id] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[item] +----------------------------------------PhysicalOlapScan[item] apply RFs: RF0 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter(i_color IN ('cyan', 'green', 'powder')) @@ -43,26 +43,26 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF7 cs_bill_addr_sk->[ca_address_sk] ----------------------------PhysicalProject ------------------------------filter((customer_address.ca_gmt_offset = -6.00)) ---------------------------------PhysicalOlapScan[customer_address] +--------------------------------PhysicalOlapScan[customer_address] apply RFs: RF7 ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF6 i_item_sk->[cs_item_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------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] +----------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 RF6 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((date_dim.d_moy = 2) and (date_dim.d_year = 2000)) --------------------------------------------PhysicalOlapScan[date_dim] --------------------------------PhysicalDistribute -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF4 i_item_id->[i_item_id] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[item] +----------------------------------------PhysicalOlapScan[item] apply RFs: RF4 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter(i_color IN ('cyan', 'green', 'powder')) @@ -72,26 +72,26 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF11 ws_bill_addr_sk->[ca_address_sk] ----------------------------PhysicalProject ------------------------------filter((customer_address.ca_gmt_offset = -6.00)) ---------------------------------PhysicalOlapScan[customer_address] +--------------------------------PhysicalOlapScan[customer_address] apply RFs: RF11 ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF10 i_item_sk->[ws_item_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF9 d_date_sk->[ws_sold_date_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF9 RF10 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((date_dim.d_moy = 2) and (date_dim.d_year = 2000)) --------------------------------------------PhysicalOlapScan[date_dim] --------------------------------PhysicalDistribute -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF8 i_item_id->[i_item_id] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[item] +----------------------------------------PhysicalOlapScan[item] apply RFs: RF8 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter(i_color IN ('cyan', 'green', 'powder')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query57.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query57.out index 65f2acb719..e43a5fa450 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query57.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query57.out @@ -13,13 +13,13 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((call_center.cc_call_center_sk = catalog_sales.cs_call_center_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((call_center.cc_call_center_sk = catalog_sales.cs_call_center_sk)) otherCondition=() build RFs:RF2 cc_call_center_sk->[cs_call_center_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[cs_item_sk] --------------------------------PhysicalDistribute -----------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((((date_dim.d_year = 1999) OR ((date_dim.d_year = 1998) AND (date_dim.d_moy = 12))) OR ((date_dim.d_year = 2000) AND (date_dim.d_moy = 1)))) @@ -36,8 +36,8 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------PhysicalTopN[LOCAL_SORT] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((v1.cc_name = v1_lag.cc_name) and (v1.i_brand = v1_lag.i_brand) and (v1.i_category = v1_lag.i_category) and (v1.rn = expr_(rn + 1)))otherCondition=() -----------------hashJoin[INNER_JOIN] hashCondition=((v1.cc_name = v1_lead.cc_name) and (v1.i_brand = v1_lead.i_brand) and (v1.i_category = v1_lead.i_category) and (v1.rn = expr_(rn - 1)))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((v1.cc_name = v1_lag.cc_name) and (v1.i_brand = v1_lag.i_brand) and (v1.i_category = v1_lag.i_category) and (v1.rn = expr_(rn + 1))) otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((v1.cc_name = v1_lead.cc_name) and (v1.i_brand = v1_lead.i_brand) and (v1.i_category = v1_lead.i_category) and (v1.rn = expr_(rn - 1))) otherCondition=() ------------------PhysicalDistribute --------------------PhysicalProject ----------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query58.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query58.out index c9a152f27f..7e1bfc6edd 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query58.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query58.out @@ -6,27 +6,27 @@ PhysicalResultSink ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((ss_items.item_id = cs_items.item_id))otherCondition=((cast(cs_item_rev as DOUBLE) <= cast((1.1 * ss_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) <= cast((1.1 * ws_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * ss_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) <= cast((1.1 * cs_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) >= cast((0.9 * cs_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) <= cast((1.1 * cs_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) >= cast((0.9 * cs_item_rev) as DOUBLE))) +------------hashJoin[INNER_JOIN] hashCondition=((ss_items.item_id = cs_items.item_id)) otherCondition=((cast(cs_item_rev as DOUBLE) <= cast((1.1 * ss_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) <= cast((1.1 * ws_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * ss_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) <= cast((1.1 * cs_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) >= cast((0.9 * cs_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) <= cast((1.1 * cs_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) >= cast((0.9 * cs_item_rev) as DOUBLE))) build RFs:RF13 item_id->[i_item_id] --------------PhysicalProject ----------------hashAgg[GLOBAL] ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF12 i_item_sk->[cs_item_sk] --------------------------PhysicalDistribute -----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF11 d_date_sk->[cs_sold_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF11 RF12 ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF10 d_date->[d_date] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[date_dim] +--------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF10 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF9 d_week_seq->[d_week_seq] ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[date_dim] +--------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF9 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalAssertNumRows ----------------------------------------------PhysicalDistribute @@ -35,28 +35,28 @@ PhysicalResultSink ----------------------------------------------------PhysicalOlapScan[date_dim] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[item] ---------------hashJoin[INNER_JOIN] hashCondition=((ss_items.item_id = ws_items.item_id))otherCondition=((cast(ss_item_rev as DOUBLE) <= cast((1.1 * ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) >= cast((0.9 * ws_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) <= cast((1.1 * ss_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) >= cast((0.9 * ss_item_rev) as DOUBLE))) +------------------------------PhysicalOlapScan[item] apply RFs: RF13 +--------------hashJoin[INNER_JOIN] hashCondition=((ss_items.item_id = ws_items.item_id)) otherCondition=((cast(ss_item_rev as DOUBLE) <= cast((1.1 * ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) >= cast((0.9 * ws_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) <= cast((1.1 * ss_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) >= cast((0.9 * ss_item_rev) as DOUBLE))) build RFs:RF8 item_id->[i_item_id] ----------------PhysicalProject ------------------hashAgg[GLOBAL] --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF7 i_item_sk->[ws_item_sk] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[ws_sold_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_sales] +----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF6 RF7 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF5 d_date->[d_date] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF5 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF4 d_week_seq->[d_week_seq] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF4 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalAssertNumRows ------------------------------------------------PhysicalDistribute @@ -65,27 +65,27 @@ PhysicalResultSink ------------------------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[item] +--------------------------------PhysicalOlapScan[item] apply RFs: RF8 ----------------PhysicalProject ------------------hashAgg[GLOBAL] --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ss_item_sk] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF1 d_date->[d_date] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF1 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF0 d_week_seq->[d_week_seq] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF0 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalAssertNumRows ------------------------------------------------PhysicalDistribute diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out index 4a19d7e8d2..2f7eaba2b6 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out @@ -6,9 +6,9 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------hashAgg[LOCAL] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk] --------------PhysicalProject -----------------PhysicalOlapScan[store_sales] +----------------PhysicalOlapScan[store_sales] apply RFs: RF0 --------------PhysicalDistribute ----------------PhysicalProject ------------------PhysicalOlapScan[date_dim] @@ -18,12 +18,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------PhysicalTopN[LOCAL_SORT] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(d_week_seq2 - 52)) and (y.s_store_id1 = x.s_store_id2))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(d_week_seq2 - 52)) and (y.s_store_id1 = x.s_store_id2)) otherCondition=() ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((wss.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((wss.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF4 s_store_sk->[ss_store_sk] ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_week_seq = d_week_seq1))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_week_seq = d_week_seq1)) otherCondition=() build RFs:RF3 d_week_seq->[d_week_seq] --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) @@ -36,10 +36,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------------------PhysicalOlapScan[store] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((wss.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((wss.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_week_seq = d_week_seq2))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_week_seq = d_week_seq2)) otherCondition=() build RFs:RF1 d_week_seq->[d_week_seq] ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query6.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query6.out index cdda516cb5..e889f088ec 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query6.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query6.out @@ -10,25 +10,25 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((a.ca_address_sk = c.c_current_addr_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((a.ca_address_sk = c.c_current_addr_sk)) otherCondition=() build RFs:RF5 ca_address_sk->[c_current_addr_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_customer_sk = s.ss_customer_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_customer_sk = s.ss_customer_sk)) otherCondition=() build RFs:RF4 ss_customer_sk->[c_customer_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[customer] +--------------------------------PhysicalOlapScan[customer] apply RFs: RF4 RF5 ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((s.ss_item_sk = i.i_item_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((s.ss_item_sk = i.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ss_item_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((s.ss_sold_date_sk = d.d_date_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((s.ss_sold_date_sk = d.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ss_sold_date_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 RF3 ----------------------------------------PhysicalDistribute -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_month_seq = date_dim.d_month_seq))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((d.d_month_seq = date_dim.d_month_seq)) otherCondition=() build RFs:RF1 d_month_seq->[d_month_seq] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF1 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalAssertNumRows ------------------------------------------------PhysicalDistribute @@ -39,9 +39,9 @@ PhysicalResultSink ----------------------------------------------------------filter((date_dim.d_moy = 3) and (date_dim.d_year = 2002)) ------------------------------------------------------------PhysicalOlapScan[date_dim] ----------------------------------PhysicalDistribute -------------------------------------hashJoin[INNER_JOIN] hashCondition=((j.i_category = i.i_category))otherCondition=((cast(i_current_price as DECIMALV3(38, 5)) > (1.2 * avg(cast(i_current_price as DECIMALV3(9, 4)))))) +------------------------------------hashJoin[INNER_JOIN] hashCondition=((j.i_category = i.i_category)) otherCondition=((cast(i_current_price as DECIMALV3(38, 5)) > (1.2 * avg(cast(i_current_price as DECIMALV3(9, 4)))))) build RFs:RF0 i_category->[i_category] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[item] +----------------------------------------PhysicalOlapScan[item] apply RFs: RF0 --------------------------------------PhysicalDistribute ----------------------------------------hashAgg[GLOBAL] ------------------------------------------PhysicalDistribute diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query60.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query60.out index d04a8b9399..c7599f8a05 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query60.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query60.out @@ -13,15 +13,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ss_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[ss_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 8) and (date_dim.d_year = 2000)) @@ -31,10 +31,10 @@ PhysicalResultSink --------------------------------------filter((customer_address.ca_gmt_offset = -7.00)) ----------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute -------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF0 i_item_id->[i_item_id] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[item] +------------------------------------PhysicalOlapScan[item] apply RFs: RF0 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Children')) @@ -44,15 +44,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF7 i_item_sk->[cs_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF6 ca_address_sk->[cs_bill_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 RF6 RF7 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 8) and (date_dim.d_year = 2000)) @@ -62,10 +62,10 @@ PhysicalResultSink --------------------------------------filter((customer_address.ca_gmt_offset = -7.00)) ----------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute -------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF4 i_item_id->[i_item_id] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[item] +------------------------------------PhysicalOlapScan[item] apply RFs: RF4 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Children')) @@ -75,15 +75,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF11 i_item_sk->[ws_item_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF10 ca_address_sk->[ws_bill_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF9 d_date_sk->[ws_sold_date_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[web_sales] +------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF9 RF10 RF11 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 8) and (date_dim.d_year = 2000)) @@ -93,10 +93,10 @@ PhysicalResultSink --------------------------------------filter((customer_address.ca_gmt_offset = -7.00)) ----------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute -------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id))otherCondition=() +------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((item.i_item_id = item.i_item_id)) otherCondition=() build RFs:RF8 i_item_id->[i_item_id] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[item] +------------------------------------PhysicalOlapScan[item] apply RFs: RF8 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Children')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out index ecba2a2c6a..acfbd106b2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out @@ -9,37 +9,37 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF10 c_current_addr_sk->[ca_address_sk] --------------------PhysicalProject ----------------------filter((customer_address.ca_gmt_offset = -7.00)) -------------------------PhysicalOlapScan[customer_address] +------------------------PhysicalOlapScan[customer_address] apply RFs: RF10 --------------------PhysicalDistribute -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF9 ss_item_sk->[i_item_sk] ------------------------PhysicalProject --------------------------filter((item.i_category = 'Jewelry')) -----------------------------PhysicalOlapScan[item] +----------------------------PhysicalOlapScan[item] apply RFs: RF9 ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF8 ss_customer_sk->[c_customer_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[customer] +--------------------------------PhysicalOlapScan[customer] apply RFs: RF8 ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF7 ss_promo_sk->[p_promo_sk] ------------------------------------PhysicalProject --------------------------------------filter((((promotion.p_channel_dmail = 'Y') OR (promotion.p_channel_email = 'Y')) OR (promotion.p_channel_tv = 'Y'))) -----------------------------------------PhysicalOlapScan[promotion] +----------------------------------------PhysicalOlapScan[promotion] apply RFs: RF7 ------------------------------------PhysicalDistribute ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 ss_sold_date_sk->[d_date_sk] ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 1999)) -----------------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF6 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF5 s_store_sk->[ss_store_sk] ----------------------------------------------PhysicalProject -------------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF5 ----------------------------------------------PhysicalDistribute ------------------------------------------------PhysicalProject --------------------------------------------------filter((store.s_gmt_offset = -7.00)) @@ -49,31 +49,31 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF4 c_current_addr_sk->[ca_address_sk] ----------------------PhysicalProject ------------------------filter((customer_address.ca_gmt_offset = -7.00)) ---------------------------PhysicalOlapScan[customer_address] +--------------------------PhysicalOlapScan[customer_address] apply RFs: RF4 ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 ss_item_sk->[i_item_sk] --------------------------PhysicalProject ----------------------------filter((item.i_category = 'Jewelry')) -------------------------------PhysicalOlapScan[item] +------------------------------PhysicalOlapScan[item] apply RFs: RF3 --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 ss_sold_date_sk->[d_date_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 1999)) ---------------------------------------PhysicalOlapScan[date_dim] +--------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF2 --------------------------------PhysicalDistribute -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF1 ss_customer_sk->[c_customer_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[customer] +--------------------------------------PhysicalOlapScan[customer] apply RFs: RF1 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF0 s_store_sk->[ss_store_sk] ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter((store.s_gmt_offset = -7.00)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query62.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query62.out index ca39675130..8569984037 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query62.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query62.out @@ -8,13 +8,13 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF3 w_warehouse_sk->[ws_warehouse_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_mode_sk = ship_mode.sm_ship_mode_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_site_sk = web_site.web_site_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_mode_sk = ship_mode.sm_ship_mode_sk)) otherCondition=() build RFs:RF2 sm_ship_mode_sk->[ws_ship_mode_sk] +----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() build RFs:RF1 web_site_sk->[ws_web_site_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_ship_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[web_sales] +----------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 RF2 RF3 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_month_seq <= 1205) and (date_dim.d_month_seq >= 1194)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query63.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query63.out index c02185f452..7d77df8cfb 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query63.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query63.out @@ -14,15 +14,15 @@ PhysicalResultSink ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter((((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'reference', 'self-help')) AND i_brand IN ('exportiunivamalg #9', 'scholaramalgamalg #14', 'scholaramalgamalg #7', 'scholaramalgamalg #9')) OR ((i_category IN ('Men', 'Music', 'Women') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants')) AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query64.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query64.out index 531dbc4069..14b87766c6 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query64.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query64.out @@ -7,30 +7,30 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_shipto_date_sk = d3.d_date_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_shipto_date_sk = d3.d_date_sk)) otherCondition=() build RFs:RF19 d_date_sk->[c_first_shipto_date_sk] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_sales_date_sk = d2.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_sales_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF18 d_date_sk->[c_first_sales_date_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=(( not (cd_marital_status = cd_marital_status))) +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=(( not (cd_marital_status = cd_marital_status))) build RFs:RF17 ss_customer_sk->[c_customer_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = ad2.ca_address_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = ad2.ca_address_sk)) otherCondition=() build RFs:RF16 ca_address_sk->[c_current_addr_sk] ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_cdemo_sk = cd2.cd_demo_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_cdemo_sk = cd2.cd_demo_sk)) otherCondition=() build RFs:RF15 cd_demo_sk->[c_current_cdemo_sk] ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_hdemo_sk = hd2.hd_demo_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_hdemo_sk = hd2.hd_demo_sk)) otherCondition=() build RFs:RF14 hd_demo_sk->[c_current_hdemo_sk] ----------------------------------------------PhysicalProject -------------------------------------------------PhysicalOlapScan[customer] +------------------------------------------------PhysicalOlapScan[customer] apply RFs: RF14 RF15 RF16 RF17 RF18 RF19 ----------------------------------------------PhysicalDistribute ------------------------------------------------PhysicalProject ---------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((hd2.hd_income_band_sk = ib2.ib_income_band_sk))otherCondition=() +--------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((hd2.hd_income_band_sk = ib2.ib_income_band_sk)) otherCondition=() build RFs:RF13 ib_income_band_sk->[hd_income_band_sk] ----------------------------------------------------PhysicalDistribute ------------------------------------------------------PhysicalProject ---------------------------------------------------------PhysicalOlapScan[household_demographics] +--------------------------------------------------------PhysicalOlapScan[household_demographics] apply RFs: RF13 ----------------------------------------------------PhysicalDistribute ------------------------------------------------------PhysicalProject --------------------------------------------------------PhysicalOlapScan[income_band] @@ -42,36 +42,36 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) --------------------------------------PhysicalOlapScan[customer_address] ----------------------------PhysicalDistribute ------------------------------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=() +--------------------------------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:RF11 ss_item_sk->[sr_item_sk];RF12 ss_ticket_number->[sr_ticket_number] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_returns] +------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF11 RF12 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF10 p_promo_sk->[ss_promo_sk] ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = ad1.ca_address_sk))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = ad1.ca_address_sk)) otherCondition=() build RFs:RF9 ss_addr_sk->[ca_address_sk] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[customer_address] +----------------------------------------------PhysicalOlapScan[customer_address] apply RFs: RF9 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject -------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = cd1.cd_demo_sk))otherCondition=() +------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = cd1.cd_demo_sk)) otherCondition=() build RFs:RF8 ss_cdemo_sk->[cd_demo_sk] --------------------------------------------------PhysicalDistribute ----------------------------------------------------PhysicalProject -------------------------------------------------------PhysicalOlapScan[customer_demographics] +------------------------------------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF8 --------------------------------------------------PhysicalDistribute -----------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF7 i_item_sk->[ss_item_sk] ------------------------------------------------------PhysicalProject ---------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF6 s_store_sk->[ss_store_sk] ----------------------------------------------------------PhysicalProject -------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((hd1.hd_income_band_sk = ib1.ib_income_band_sk))otherCondition=() +------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((hd1.hd_income_band_sk = ib1.ib_income_band_sk)) otherCondition=() build RFs:RF5 ib_income_band_sk->[hd_income_band_sk] --------------------------------------------------------------PhysicalProject -----------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = hd1.hd_demo_sk))otherCondition=() +----------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = hd1.hd_demo_sk)) otherCondition=() build RFs:RF4 hd_demo_sk->[ss_hdemo_sk] ------------------------------------------------------------------PhysicalProject ---------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk))otherCondition=() +--------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF3 d_date_sk->[ss_sold_date_sk] ----------------------------------------------------------------------PhysicalProject -------------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = cs_ui.cs_item_sk))otherCondition=() +------------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = cs_ui.cs_item_sk)) otherCondition=() build RFs:RF2 cs_item_sk->[ss_item_sk] --------------------------------------------------------------------------PhysicalProject -----------------------------------------------------------------------------PhysicalOlapScan[store_sales] +----------------------------------------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 RF3 RF4 RF6 RF7 RF10 --------------------------------------------------------------------------PhysicalDistribute ----------------------------------------------------------------------------PhysicalProject ------------------------------------------------------------------------------filter((sale > (2 * refund))) @@ -79,9 +79,9 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) ----------------------------------------------------------------------------------PhysicalDistribute ------------------------------------------------------------------------------------hashAgg[LOCAL] --------------------------------------------------------------------------------------PhysicalProject -----------------------------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number))otherCondition=() +----------------------------------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number)) otherCondition=() build RFs:RF0 cr_order_number->[cs_order_number];RF1 cr_item_sk->[cs_item_sk] ------------------------------------------------------------------------------------------PhysicalProject ---------------------------------------------------------------------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------------------------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 ------------------------------------------------------------------------------------------PhysicalProject --------------------------------------------------------------------------------------------PhysicalOlapScan[catalog_returns] ----------------------------------------------------------------------PhysicalDistribute @@ -90,7 +90,7 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) ----------------------------------------------------------------------------PhysicalOlapScan[date_dim] ------------------------------------------------------------------PhysicalDistribute --------------------------------------------------------------------PhysicalProject -----------------------------------------------------------------------PhysicalOlapScan[household_demographics] +----------------------------------------------------------------------PhysicalOlapScan[household_demographics] apply RFs: RF5 --------------------------------------------------------------PhysicalDistribute ----------------------------------------------------------------PhysicalProject ------------------------------------------------------------------PhysicalOlapScan[income_band] @@ -115,7 +115,7 @@ PhysicalCteAnchor ( cteId=CTEId#1 ) ------PhysicalDistribute --------PhysicalQuickSort[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((cs1.item_sk = cs2.item_sk) and (cs1.store_name = cs2.store_name) and (cs1.store_zip = cs2.store_zip))otherCondition=((cs2.cnt <= cs1.cnt)) +------------hashJoin[INNER_JOIN] hashCondition=((cs1.item_sk = cs2.item_sk) and (cs1.store_name = cs2.store_name) and (cs1.store_zip = cs2.store_zip)) otherCondition=((cs2.cnt <= cs1.cnt)) --------------PhysicalDistribute ----------------PhysicalProject ------------------filter((cs1.syear = 2001)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query65.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query65.out index 35294f5b65..066064a71f 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query65.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query65.out @@ -5,18 +5,18 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = sc.ss_store_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = sc.ss_store_sk)) otherCondition=() build RFs:RF4 s_store_sk->[ss_store_sk] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = sc.ss_item_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = sc.ss_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ss_item_sk] ----------------PhysicalDistribute -------------------hashJoin[INNER_JOIN] hashCondition=((sb.ss_store_sk = sc.ss_store_sk))otherCondition=((cast(revenue as DOUBLE) <= cast((0.1 * ave) as DOUBLE))) +------------------hashJoin[INNER_JOIN] hashCondition=((sb.ss_store_sk = sc.ss_store_sk)) otherCondition=((cast(revenue as DOUBLE) <= cast((0.1 * ave) as DOUBLE))) build RFs:RF2 ss_store_sk->[ss_store_sk] --------------------hashAgg[GLOBAL] ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[store_sales] +--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 RF3 RF4 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((date_dim.d_month_seq <= 1232) and (date_dim.d_month_seq >= 1221)) @@ -30,9 +30,9 @@ PhysicalResultSink --------------------------------PhysicalDistribute ----------------------------------hashAgg[LOCAL] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_month_seq <= 1232) and (date_dim.d_month_seq >= 1221)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query66.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query66.out index 201886dd2a..ccdf32f277 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query66.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query66.out @@ -13,15 +13,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF3 w_warehouse_sk->[ws_warehouse_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF2 t_time_sk->[ws_sold_time_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_mode_sk = ship_mode.sm_ship_mode_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_mode_sk = ship_mode.sm_ship_mode_sk)) otherCondition=() build RFs:RF0 sm_ship_mode_sk->[ws_ship_mode_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[web_sales] +------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 RF2 RF3 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter(sm_carrier IN ('GREAT EASTERN', 'LATVIAN')) @@ -42,15 +42,15 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF7 w_warehouse_sk->[cs_warehouse_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF6 t_time_sk->[cs_sold_time_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_mode_sk = ship_mode.sm_ship_mode_sk))otherCondition=() +------------------------------------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] +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_mode_sk = ship_mode.sm_ship_mode_sk)) otherCondition=() build RFs:RF4 sm_ship_mode_sk->[cs_ship_mode_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4 RF5 RF6 RF7 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter(sm_carrier IN ('GREAT EASTERN', 'LATVIAN')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query67.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query67.out index 6d963af329..bb8c8724c7 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query67.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query67.out @@ -15,12 +15,12 @@ PhysicalResultSink ------------------------hashAgg[LOCAL] --------------------------PhysicalRepeat ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] +--------------------------------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=() +------------------------------------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] +----------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((date_dim.d_month_seq <= 1217) and (date_dim.d_month_seq >= 1206)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query68.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query68.out index 96b4968478..129724a5e4 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query68.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query68.out @@ -5,31 +5,31 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = current_addr.ca_address_sk))otherCondition=(( not (ca_city = bought_city))) +----------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = current_addr.ca_address_sk)) otherCondition=(( not (ca_city = bought_city))) build RFs:RF5 c_current_addr_sk->[ca_address_sk] ------------PhysicalProject ---------------PhysicalOlapScan[customer_address] +--------------PhysicalOlapScan[customer_address] apply RFs: RF5 ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((dn.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF4 ss_customer_sk->[c_customer_sk] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------PhysicalOlapScan[customer] +----------------------PhysicalOlapScan[customer] apply RFs: RF4 ------------------PhysicalDistribute --------------------PhysicalProject ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 ss_addr_sk->[ca_address_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[customer_address] +------------------------------PhysicalOlapScan[customer_address] apply RFs: RF3 ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[ss_hdemo_sk] ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ss_store_sk] --------------------------------------PhysicalProject -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------------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] +--------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter((date_dim.d_dom <= 2) and (date_dim.d_dom >= 1) and d_year IN (1998, 1999, 2000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query69.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query69.out index cbd40a5c6c..ed02c0b02f 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query69.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query69.out @@ -9,48 +9,48 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF7 c_customer_sk->[ss_customer_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[ss_sold_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_sales] +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF6 RF7 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy >= 1) and (date_dim.d_year = 2000)) --------------------------------PhysicalOlapScan[date_dim] --------------------PhysicalProject -----------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk))otherCondition=() +----------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[cs_ship_customer_sk] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[cs_sold_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_sales] +--------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4 RF5 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy >= 1) and (date_dim.d_year = 2000)) ------------------------------------PhysicalOlapScan[date_dim] ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) otherCondition=() build RFs:RF3 c_current_cdemo_sk->[cd_demo_sk] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[customer_demographics] +--------------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF3 ----------------------------PhysicalDistribute -------------------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +------------------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() build RFs:RF2 c_customer_sk->[ws_bill_customer_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 RF2 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy >= 1) and (date_dim.d_year = 2000)) --------------------------------------------PhysicalOlapScan[date_dim] --------------------------------PhysicalDistribute -----------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[c_current_addr_sk] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[customer] +----------------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter(ca_state IN ('MI', 'TX', 'VA')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out index d367161211..379ab9b02e 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out @@ -8,15 +8,15 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ss_item_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF2 p_promo_sk->[ss_promo_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = customer_demographics.cd_demo_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF0 cd_demo_sk->[ss_cdemo_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[store_sales] +--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF3 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((customer_demographics.cd_education_status = 'College') and (customer_demographics.cd_gender = 'F') and (customer_demographics.cd_marital_status = 'W')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query70.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query70.out index 92b070b03f..10e42dc977 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query70.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query70.out @@ -15,20 +15,20 @@ PhysicalResultSink ------------------------hashAgg[LOCAL] --------------------------PhysicalRepeat ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF4 s_store_sk->[ss_store_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF3 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF3 RF4 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((d1.d_month_seq <= 1224) and (d1.d_month_seq >= 1213)) ------------------------------------------PhysicalOlapScan[date_dim] --------------------------------PhysicalDistribute -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((store.s_state = tmp1.s_state))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((store.s_state = tmp1.s_state)) otherCondition=() build RFs:RF2 s_state->[s_state] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[store] +----------------------------------------PhysicalOlapScan[store] apply RFs: RF2 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((ranking <= 5)) @@ -41,10 +41,10 @@ PhysicalResultSink ------------------------------------------------------PhysicalDistribute --------------------------------------------------------hashAgg[LOCAL] ----------------------------------------------------------PhysicalProject -------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk))otherCondition=() ---------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = store_sales.ss_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[ss_store_sk] +--------------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk] ----------------------------------------------------------------PhysicalProject -------------------------------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------------------------------------------------PhysicalDistribute ------------------------------------------------------------------PhysicalProject --------------------------------------------------------------------filter((date_dim.d_month_seq <= 1224) and (date_dim.d_month_seq >= 1213)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query71.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query71.out index b13f0ac8c9..a689ad41e1 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query71.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query71.out @@ -9,34 +9,34 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((tmp.time_sk = time_dim.t_time_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((tmp.time_sk = time_dim.t_time_sk)) otherCondition=() --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((tmp.sold_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((tmp.sold_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[ws_item_sk,cs_item_sk,ss_item_sk] --------------------------PhysicalUnion ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[web_sales] +------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF3 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_moy = 12) and (date_dim.d_year = 1998)) ----------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[catalog_sales] +------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF1 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_moy = 12) and (date_dim.d_year = 1998)) ----------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ss_sold_date_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((date_dim.d_moy = 12) and (date_dim.d_year = 1998)) 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 247b836807..e2eaf3fd2b 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,34 +8,34 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((warehouse.w_warehouse_sk = inventory.inv_warehouse_sk))otherCondition=() +----------------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)) +--------------------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] +------------------------PhysicalOlapScan[inventory] apply RFs: RF8 RF9 RF10 ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_week_seq = d2.d_week_seq))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_week_seq = d2.d_week_seq)) otherCondition=() build RFs:RF7 d_week_seq->[d_week_seq] ----------------------------PhysicalDistribute -------------------------------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=() +------------------------------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] +------------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF5 RF6 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk))otherCondition=() +------------------------------------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=() +----------------------------------------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))) +----------------------------------------------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] ------------------------------------------------PhysicalDistribute ---------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_cdemo_sk = customer_demographics.cd_demo_sk))otherCondition=() +--------------------------------------------------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=() ---------------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +------------------------------------------------------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] +------------------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 RF3 RF4 ----------------------------------------------------------PhysicalDistribute ------------------------------------------------------------PhysicalProject --------------------------------------------------------------filter((household_demographics.hd_buy_potential = '501-1000')) @@ -43,7 +43,7 @@ PhysicalResultSink --------------------------------------------------------PhysicalDistribute ----------------------------------------------------------PhysicalProject ------------------------------------------------------------filter((d1.d_year = 2002)) ---------------------------------------------------------------PhysicalOlapScan[date_dim] +--------------------------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF7 ----------------------------------------------------PhysicalDistribute ------------------------------------------------------PhysicalProject --------------------------------------------------------filter((customer_demographics.cd_marital_status = 'W')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query73.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query73.out index ff7654df2d..8ab062bf77 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query73.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query73.out @@ -5,21 +5,21 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalQuickSort[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((dj.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((dj.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 ss_customer_sk->[c_customer_sk] ------------PhysicalProject ---------------PhysicalOlapScan[customer] +--------------PhysicalOlapScan[customer] apply RFs: RF3 ------------PhysicalDistribute --------------filter((dj.cnt <= 5) and (dj.cnt >= 1)) ----------------hashAgg[GLOBAL] ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF1 hd_demo_sk->[ss_hdemo_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_dom <= 2) and (date_dim.d_dom >= 1) and d_year IN (2000, 2001, 2002)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query74.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query74.out index 4759bca93b..71831405f5 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query74.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query74.out @@ -8,11 +8,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=() build RFs:RF1 c_customer_sk->[ss_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------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] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1999, 2000)) @@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_customer_sk = web_sales.ws_bill_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ws_bill_customer_sk] ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ws_sold_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_sales] +------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 RF3 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(d_year IN (1999, 2000)) @@ -42,9 +42,9 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id))otherCondition=((if((year_total > 0), (year_total / year_total), NULL) > if((year_total > 0), (year_total / year_total), NULL))) ---------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id))otherCondition=() -----------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_firstyear.customer_id)) otherCondition=((if((year_total > 0), (year_total / year_total), NULL) > if((year_total > 0), (year_total / year_total), NULL))) +--------------hashJoin[INNER_JOIN] hashCondition=((t_s_firstyear.customer_id = t_w_secyear.customer_id)) otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((t_s_secyear.customer_id = t_s_firstyear.customer_id)) otherCondition=() ------------------PhysicalDistribute --------------------PhysicalProject ----------------------filter((t_s_firstyear.sale_type = 's') and (t_s_firstyear.year = 1999) and (t_s_firstyear.year_total > 0)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query75.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query75.out index 24aee83858..6bf1c9b168 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query75.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query75.out @@ -11,15 +11,15 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------------PhysicalUnion ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number))otherCondition=() +----------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number)) otherCondition=() build RFs:RF2 cs_order_number->[cr_order_number];RF3 cs_item_sk->[cr_item_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[catalog_returns] +--------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF2 RF3 ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = catalog_sales.cs_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = catalog_sales.cs_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[cs_item_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[catalog_sales] +----------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Home')) @@ -30,15 +30,15 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------------------------------PhysicalOlapScan[date_dim] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() +----------------------hashJoin[RIGHT_OUTER_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:RF6 ss_ticket_number->[sr_ticket_number];RF7 ss_item_sk->[sr_item_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[store_returns] +--------------------------PhysicalOlapScan[store_returns] apply RFs: RF6 RF7 ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = store_sales.ss_sold_date_sk)) otherCondition=() build RFs:RF5 d_date_sk->[ss_sold_date_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = store_sales.ss_item_sk)) otherCondition=() build RFs:RF4 i_item_sk->[ss_item_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[store_sales] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF4 RF5 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Home')) @@ -49,15 +49,15 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------------------------------PhysicalOlapScan[date_dim] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number))otherCondition=() +----------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number)) otherCondition=() build RFs:RF10 ws_order_number->[wr_order_number];RF11 ws_item_sk->[wr_item_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[web_returns] +--------------------------PhysicalOlapScan[web_returns] apply RFs: RF10 RF11 ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk)) otherCondition=() build RFs:RF9 d_date_sk->[ws_sold_date_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk)) otherCondition=() build RFs:RF8 i_item_sk->[ws_item_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_sales] +----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF8 RF9 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((item.i_category = 'Home')) @@ -71,7 +71,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((curr_yr.i_brand_id = prev_yr.i_brand_id) and (curr_yr.i_category_id = prev_yr.i_category_id) and (curr_yr.i_class_id = prev_yr.i_class_id) and (curr_yr.i_manufact_id = prev_yr.i_manufact_id))otherCondition=(((cast(cast(sales_cnt as DECIMALV3(17, 2)) as DECIMALV3(23, 8)) / cast(sales_cnt as DECIMALV3(17, 2))) < 0.900000)) +------------hashJoin[INNER_JOIN] hashCondition=((curr_yr.i_brand_id = prev_yr.i_brand_id) and (curr_yr.i_category_id = prev_yr.i_category_id) and (curr_yr.i_class_id = prev_yr.i_class_id) and (curr_yr.i_manufact_id = prev_yr.i_manufact_id)) otherCondition=(((cast(cast(sales_cnt as DECIMALV3(17, 2)) as DECIMALV3(23, 8)) / cast(sales_cnt as DECIMALV3(17, 2))) < 0.900000)) --------------PhysicalDistribute ----------------filter((curr_yr.d_year = 1999)) ------------------PhysicalCteConsumer ( cteId=CTEId#0 ) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query76.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query76.out index 1cd2ee188f..5f668c7e57 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query76.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query76.out @@ -10,12 +10,12 @@ PhysicalResultSink --------------PhysicalUnion ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] --------------------------PhysicalProject ----------------------------filter(ss_hdemo_sk IS NULL) -------------------------------PhysicalOlapScan[store_sales] +------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------PhysicalOlapScan[item] @@ -23,13 +23,13 @@ PhysicalResultSink ------------------------PhysicalProject --------------------------PhysicalOlapScan[date_dim] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF3 d_date_sk->[ws_sold_date_sk] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ws_item_sk] ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter(ws_bill_addr_sk IS NULL) -------------------------------PhysicalOlapScan[web_sales] +------------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 RF3 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------PhysicalOlapScan[item] @@ -38,12 +38,12 @@ PhysicalResultSink ------------------------PhysicalOlapScan[date_dim] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------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 -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF4 i_item_sk->[cs_item_sk] --------------------------PhysicalProject ----------------------------filter(cs_warehouse_sk IS NULL) -------------------------------PhysicalOlapScan[catalog_sales] +------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4 RF5 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------PhysicalOlapScan[item] diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query77.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query77.out index ea024ba5bc..5a5a9c657a 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query77.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query77.out @@ -11,17 +11,17 @@ PhysicalResultSink ----------------PhysicalRepeat ------------------PhysicalUnion --------------------PhysicalProject -----------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ss.s_store_sk = sr.s_store_sk))otherCondition=() +----------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ss.s_store_sk = sr.s_store_sk)) otherCondition=() ------------------------PhysicalProject --------------------------hashAgg[GLOBAL] ----------------------------PhysicalDistribute ------------------------------hashAgg[LOCAL] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF3 s_store_sk->[ss_store_sk] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 RF3 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_date <= '1998-09-04') and (date_dim.d_date >= '1998-08-05')) @@ -34,11 +34,11 @@ PhysicalResultSink ----------------------------PhysicalDistribute ------------------------------hashAgg[LOCAL] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_store_sk = store.s_store_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF1 s_store_sk->[sr_store_sk] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[sr_returned_date_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_returns] +------------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF0 RF1 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_date <= '1998-09-04') and (date_dim.d_date >= '1998-08-05')) @@ -53,9 +53,9 @@ PhysicalResultSink ----------------------------PhysicalDistribute ------------------------------hashAgg[LOCAL] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------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] +--------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((date_dim.d_date <= '1998-09-04') and (date_dim.d_date >= '1998-08-05')) @@ -66,25 +66,25 @@ PhysicalResultSink ------------------------------PhysicalDistribute --------------------------------hashAgg[LOCAL] ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[cr_returned_date_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[catalog_returns] +----------------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF4 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((date_dim.d_date <= '1998-09-04') and (date_dim.d_date >= '1998-08-05')) --------------------------------------------PhysicalOlapScan[date_dim] --------------------PhysicalProject -----------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ws.wp_web_page_sk = wr.wp_web_page_sk))otherCondition=() +----------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ws.wp_web_page_sk = wr.wp_web_page_sk)) otherCondition=() ------------------------PhysicalProject --------------------------hashAgg[GLOBAL] ----------------------------PhysicalDistribute ------------------------------hashAgg[LOCAL] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF9 wp_web_page_sk->[ws_web_page_sk] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------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] +------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF8 RF9 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((date_dim.d_date <= '1998-09-04') and (date_dim.d_date >= '1998-08-05')) @@ -95,12 +95,12 @@ PhysicalResultSink ------------------------PhysicalProject --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_web_page_sk = web_page.wp_web_page_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF7 wp_web_page_sk->[wr_web_page_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[wr_returned_date_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[web_returns] +----------------------------------------PhysicalOlapScan[web_returns] apply RFs: RF6 RF7 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((date_dim.d_date <= '1998-09-04') and (date_dim.d_date >= '1998-08-05')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query78.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query78.out index be24ceaf4d..730493d316 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query78.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query78.out @@ -6,18 +6,18 @@ PhysicalResultSink ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject ----------filter(((coalesce(ws_qty, 0) > 0) OR (coalesce(cs_qty, 0) > 0))) -------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((cs.cs_customer_sk = ss.ss_customer_sk) and (cs.cs_item_sk = ss.ss_item_sk) and (cs.cs_sold_year = ss.ss_sold_year))otherCondition=() +------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((cs.cs_customer_sk = ss.ss_customer_sk) and (cs.cs_item_sk = ss.ss_item_sk) and (cs.cs_sold_year = ss.ss_sold_year)) otherCondition=() --------------PhysicalProject -----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ws.ws_customer_sk = ss.ss_customer_sk) and (ws.ws_item_sk = ss.ss_item_sk) and (ws.ws_sold_year = ss.ss_sold_year))otherCondition=() +----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((ws.ws_customer_sk = ss.ss_customer_sk) and (ws.ws_item_sk = ss.ss_item_sk) and (ws.ws_sold_year = ss.ss_sold_year)) otherCondition=() ------------------PhysicalProject --------------------hashAgg[GLOBAL] ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((store_returns.sr_ticket_number = store_sales.ss_ticket_number) and (store_sales.ss_item_sk = store_returns.sr_item_sk))otherCondition=() -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((store_returns.sr_ticket_number = store_sales.ss_ticket_number) and (store_sales.ss_item_sk = store_returns.sr_item_sk)) otherCondition=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_year = 2000)) @@ -29,10 +29,10 @@ PhysicalResultSink ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((web_returns.wr_order_number = web_sales.ws_order_number) and (web_sales.ws_item_sk = web_returns.wr_item_sk))otherCondition=() -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((web_returns.wr_order_number = web_sales.ws_order_number) and (web_sales.ws_item_sk = web_returns.wr_item_sk)) otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_sales] +----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_year = 2000)) @@ -44,10 +44,10 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((catalog_returns.cr_order_number = catalog_sales.cs_order_number) and (catalog_sales.cs_item_sk = catalog_returns.cr_item_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((catalog_returns.cr_order_number = catalog_sales.cs_order_number) and (catalog_sales.cs_item_sk = catalog_returns.cr_item_sk)) otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[catalog_sales] +------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((date_dim.d_year = 2000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query79.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query79.out index ed87e713d3..c03fe95df9 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query79.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query79.out @@ -5,19 +5,19 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((ms.ss_customer_sk = customer.c_customer_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((ms.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ss_customer_sk] ------------PhysicalDistribute --------------PhysicalProject ----------------hashAgg[GLOBAL] ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF1 hd_demo_sk->[ss_hdemo_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------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] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((date_dim.d_dow = 1) and d_year IN (1998, 1999, 2000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query8.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query8.out index e8922e8c0f..d3da9091cd 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query8.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query8.out @@ -8,13 +8,13 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((expr_substring(s_zip, 1, 2) = expr_substring(ca_zip, 1, 2)))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((expr_substring(s_zip, 1, 2) = expr_substring(ca_zip, 1, 2))) otherCondition=() ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_sales] +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_qoy = 2) and (date_dim.d_year = 1998)) @@ -36,9 +36,9 @@ PhysicalResultSink --------------------------------PhysicalDistribute ----------------------------------hashAgg[LOCAL] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF0 c_current_addr_sk->[ca_address_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[customer_address] +------------------------------------------PhysicalOlapScan[customer_address] apply RFs: RF0 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((customer.c_preferred_cust_flag = 'Y')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query80.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query80.out index c16e2d01ac..8361a2a5ca 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query80.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query80.out @@ -15,20 +15,20 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number))otherCondition=() +------------------------------hashJoin[RIGHT_OUTER_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:RF4 ss_item_sk->[sr_item_sk];RF5 ss_ticket_number->[sr_ticket_number] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_returns] +------------------------------------PhysicalOlapScan[store_returns] apply RFs: RF4 RF5 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF3 s_store_sk->[ss_store_sk] +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF2 p_promo_sk->[ss_promo_sk] ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ss_item_sk] --------------------------------------------PhysicalDistribute -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------------------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] +--------------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 RF3 ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject ----------------------------------------------------filter((date_dim.d_date <= '1998-09-27') and (date_dim.d_date >= '1998-08-28')) @@ -49,21 +49,21 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_catalog_page_sk = catalog_page.cp_catalog_page_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_catalog_page_sk = catalog_page.cp_catalog_page_sk)) otherCondition=() build RFs:RF11 cp_catalog_page_sk->[cs_catalog_page_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number))otherCondition=() +------------------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number)) otherCondition=() build RFs:RF9 cs_item_sk->[cr_item_sk];RF10 cs_order_number->[cr_order_number] --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[catalog_returns] +------------------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF9 RF10 --------------------------------------PhysicalDistribute -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk))otherCondition=() +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF8 p_promo_sk->[cs_promo_sk] ------------------------------------------PhysicalProject ---------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk))otherCondition=() +--------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF7 i_item_sk->[cs_item_sk] ----------------------------------------------PhysicalDistribute -------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[cs_sold_date_sk] --------------------------------------------------PhysicalProject -----------------------------------------------------PhysicalOlapScan[catalog_sales] +----------------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF6 RF7 RF8 RF11 --------------------------------------------------PhysicalDistribute ----------------------------------------------------PhysicalProject ------------------------------------------------------filter((date_dim.d_date <= '1998-09-27') and (date_dim.d_date >= '1998-08-28')) @@ -84,20 +84,20 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number))otherCondition=() +------------------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number)) otherCondition=() build RFs:RF16 ws_item_sk->[wr_item_sk];RF17 ws_order_number->[wr_order_number] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[web_returns] +------------------------------------PhysicalOlapScan[web_returns] apply RFs: RF16 RF17 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_site_sk = web_site.web_site_sk))otherCondition=() ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_promo_sk = promotion.p_promo_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() build RFs:RF15 web_site_sk->[ws_web_site_sk] +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF14 p_promo_sk->[ws_promo_sk] ----------------------------------------PhysicalProject -------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk))otherCondition=() +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF13 i_item_sk->[ws_item_sk] --------------------------------------------PhysicalDistribute -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF12 d_date_sk->[ws_sold_date_sk] ------------------------------------------------PhysicalProject ---------------------------------------------------PhysicalOlapScan[web_sales] +--------------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF12 RF13 RF14 RF15 ------------------------------------------------PhysicalDistribute --------------------------------------------------PhysicalProject ----------------------------------------------------filter((date_dim.d_date <= '1998-09-27') and (date_dim.d_date >= '1998-08-28')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out index 2b784b3c65..355fa23bc4 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out @@ -7,12 +7,12 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returning_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returning_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF1 ca_address_sk->[cr_returning_addr_sk] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cr_returned_date_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[catalog_returns] +------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF0 RF1 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((date_dim.d_year = 2002)) @@ -25,15 +25,15 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_state = ctr2.ctr_state))otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) +------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_state = ctr2.ctr_state)) otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ctr_customer_sk] ------------------PhysicalDistribute --------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[c_current_addr_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[customer] +------------------------PhysicalOlapScan[customer] apply RFs: RF2 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((customer_address.ca_state = 'CA')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query82.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query82.out index 2e9b118c8a..1e05dc2e4c 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query82.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query82.out @@ -8,17 +8,17 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ss_item_sk] ------------------PhysicalProject ---------------------PhysicalOlapScan[store_sales] +--------------------PhysicalOlapScan[store_sales] apply RFs: RF2 ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = inventory.inv_date_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = inventory.inv_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[inv_date_sk] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((inventory.inv_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[inv_item_sk] ----------------------------PhysicalProject ------------------------------filter((inventory.inv_quantity_on_hand <= 500) and (inventory.inv_quantity_on_hand >= 100)) ---------------------------------PhysicalOlapScan[inventory] +--------------------------------PhysicalOlapScan[inventory] apply RFs: RF0 RF1 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((item.i_current_price <= 47.00) and (item.i_current_price >= 17.00) and i_manufact_id IN (138, 169, 339, 639)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query83.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query83.out index 1a4ec53d6b..0ab5a380ee 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query83.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query83.out @@ -6,83 +6,83 @@ PhysicalResultSink ------PhysicalDistribute --------PhysicalTopN[LOCAL_SORT] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = cr_items.item_id))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = cr_items.item_id)) otherCondition=() build RFs:RF13 item_id->[i_item_id] --------------PhysicalProject ----------------hashAgg[GLOBAL] ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF12 cr_item_sk->[i_item_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[item] +----------------------------PhysicalOlapScan[item] apply RFs: RF12 RF13 --------------------------PhysicalDistribute -----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF11 d_date_sk->[cr_returned_date_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[catalog_returns] +--------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF11 ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF10 d_date->[d_date] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[date_dim] +--------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF10 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +----------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF9 d_week_seq->[d_week_seq] ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[date_dim] +--------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF9 ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject ----------------------------------------------filter(d_date IN ('2001-06-06', '2001-09-02', '2001-11-11')) ------------------------------------------------PhysicalOlapScan[date_dim] ---------------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = wr_items.item_id))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = wr_items.item_id)) otherCondition=() build RFs:RF8 item_id->[i_item_id] ----------------PhysicalProject ------------------hashAgg[GLOBAL] --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF7 i_item_sk->[sr_item_sk] ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[sr_returned_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[store_returns] +----------------------------------PhysicalOlapScan[store_returns] apply RFs: RF6 RF7 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF5 d_date->[d_date] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF5 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +------------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF4 d_week_seq->[d_week_seq] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF4 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject ------------------------------------------------filter(d_date IN ('2001-06-06', '2001-09-02', '2001-11-11')) --------------------------------------------------PhysicalOlapScan[date_dim] ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[item] +--------------------------------PhysicalOlapScan[item] apply RFs: RF8 ----------------PhysicalProject ------------------hashAgg[GLOBAL] --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_item_sk = item.i_item_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 wr_item_sk->[i_item_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[item] +------------------------------PhysicalOlapScan[item] apply RFs: RF3 ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[wr_returned_date_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_returns] +----------------------------------PhysicalOlapScan[web_returns] apply RFs: RF2 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date))otherCondition=() +------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF1 d_date->[d_date] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF1 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject -------------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq))otherCondition=() +------------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF0 d_week_seq->[d_week_seq] --------------------------------------------PhysicalProject -----------------------------------------------PhysicalOlapScan[date_dim] +----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF0 --------------------------------------------PhysicalDistribute ----------------------------------------------PhysicalProject ------------------------------------------------filter(d_date IN ('2001-06-06', '2001-09-02', '2001-11-11')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query84.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query84.out index f035e1067f..a7be299091 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query84.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query84.out @@ -5,30 +5,30 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_cdemo_sk = customer_demographics.cd_demo_sk))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_cdemo_sk = customer_demographics.cd_demo_sk)) otherCondition=() build RFs:RF4 cd_demo_sk->[sr_cdemo_sk] ------------PhysicalProject ---------------PhysicalOlapScan[store_returns] +--------------PhysicalOlapScan[store_returns] apply RFs: RF4 ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = customer.c_current_cdemo_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = customer.c_current_cdemo_sk)) otherCondition=() build RFs:RF3 c_current_cdemo_sk->[cd_demo_sk] ------------------PhysicalProject ---------------------PhysicalOlapScan[customer_demographics] +--------------------PhysicalOlapScan[customer_demographics] apply RFs: RF3 ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((household_demographics.hd_demo_sk = customer.c_current_hdemo_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((household_demographics.hd_demo_sk = customer.c_current_hdemo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[c_current_hdemo_sk] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF1 ca_address_sk->[c_current_addr_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[customer] +--------------------------------PhysicalOlapScan[customer] apply RFs: RF1 RF2 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((customer_address.ca_city = 'Oakwood')) ------------------------------------PhysicalOlapScan[customer_address] ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((income_band.ib_income_band_sk = household_demographics.hd_income_band_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((income_band.ib_income_band_sk = household_demographics.hd_income_band_sk)) otherCondition=() build RFs:RF0 ib_income_band_sk->[hd_income_band_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[household_demographics] +------------------------------PhysicalOlapScan[household_demographics] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((cast(ib_upper_bound as BIGINT) <= 55806) and (income_band.ib_lower_bound >= 5806)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out index a2aa93345a..5288adfc98 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out @@ -9,33 +9,33 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((reason.r_reason_sk = web_returns.wr_reason_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((reason.r_reason_sk = web_returns.wr_reason_sk)) otherCondition=() build RFs:RF9 r_reason_sk->[wr_reason_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF8 wp_web_page_sk->[ws_web_page_sk] --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((cd1.cd_education_status = cd2.cd_education_status) and (cd1.cd_marital_status = cd2.cd_marital_status) and (cd2.cd_demo_sk = web_returns.wr_returning_cdemo_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((cd1.cd_education_status = cd2.cd_education_status) and (cd1.cd_marital_status = cd2.cd_marital_status) and (cd2.cd_demo_sk = web_returns.wr_returning_cdemo_sk)) otherCondition=() build RFs:RF5 cd_marital_status->[cd_marital_status];RF6 cd_education_status->[cd_education_status];RF7 wr_returning_cdemo_sk->[cd_demo_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[customer_demographics] +----------------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF5 RF6 RF7 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((cd1.cd_demo_sk = web_returns.wr_refunded_cdemo_sk))otherCondition=((((((cd1.cd_marital_status = 'M') AND (cd1.cd_education_status = '4 yr Degree')) AND ((web_sales.ws_sales_price >= 100.00) AND (web_sales.ws_sales_price <= 150.00))) OR (((cd1.cd_marital_status = 'S') AND (cd1.cd_education_status = 'Secondary')) AND ((web_sales.ws_sales_price >= 50.00) AND (web_sales.ws_sales_price <= 100.00)))) OR (((cd1.cd_marital_status = 'W') AND (cd1.cd_education_status = 'Advanced Degree')) AND ((web_sales.ws_sales_price >= 150.00) AND (web_sales.ws_sales_price <= 200.00))))) +------------------------------------hashJoin[INNER_JOIN] hashCondition=((cd1.cd_demo_sk = web_returns.wr_refunded_cdemo_sk)) otherCondition=((((((cd1.cd_marital_status = 'M') AND (cd1.cd_education_status = '4 yr Degree')) AND ((web_sales.ws_sales_price >= 100.00) AND (web_sales.ws_sales_price <= 150.00))) OR (((cd1.cd_marital_status = 'S') AND (cd1.cd_education_status = 'Secondary')) AND ((web_sales.ws_sales_price >= 50.00) AND (web_sales.ws_sales_price <= 100.00)))) OR (((cd1.cd_marital_status = 'W') AND (cd1.cd_education_status = 'Advanced Degree')) AND ((web_sales.ws_sales_price >= 150.00) AND (web_sales.ws_sales_price <= 200.00))))) build RFs:RF4 wr_refunded_cdemo_sk->[cd_demo_sk] --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter(((((cd1.cd_marital_status = 'M') AND (cd1.cd_education_status = '4 yr Degree')) OR ((cd1.cd_marital_status = 'S') AND (cd1.cd_education_status = 'Secondary'))) OR ((cd1.cd_marital_status = 'W') AND (cd1.cd_education_status = 'Advanced Degree')))) ---------------------------------------------PhysicalOlapScan[customer_demographics] +--------------------------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF4 --------------------------------------PhysicalDistribute -----------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = web_returns.wr_refunded_addr_sk))otherCondition=((((ca_state IN ('DE', 'FL', 'TX') AND ((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 200.00))) OR (ca_state IN ('ID', 'IN', 'ND') AND ((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('IL', 'MT', 'OH') AND ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 250.00))))) +----------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = web_returns.wr_refunded_addr_sk)) otherCondition=((((ca_state IN ('DE', 'FL', 'TX') AND ((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 200.00))) OR (ca_state IN ('ID', 'IN', 'ND') AND ((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('IL', 'MT', 'OH') AND ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 250.00))))) build RFs:RF3 ca_address_sk->[wr_refunded_addr_sk] ------------------------------------------PhysicalDistribute --------------------------------------------PhysicalProject -----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number))otherCondition=() +----------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and (web_sales.ws_order_number = web_returns.wr_order_number)) otherCondition=() build RFs:RF1 ws_item_sk->[wr_item_sk];RF2 ws_order_number->[wr_order_number] ------------------------------------------------PhysicalProject ---------------------------------------------------PhysicalOlapScan[web_returns] -------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------------------------------PhysicalOlapScan[web_returns] apply RFs: RF1 RF2 RF3 RF9 +------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk] --------------------------------------------------PhysicalProject ----------------------------------------------------filter(((((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 200.00)) OR ((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00))) OR ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 250.00))) and ((((web_sales.ws_sales_price >= 100.00) AND (web_sales.ws_sales_price <= 150.00)) OR ((web_sales.ws_sales_price >= 50.00) AND (web_sales.ws_sales_price <= 100.00))) OR ((web_sales.ws_sales_price >= 150.00) AND (web_sales.ws_sales_price <= 200.00)))) -------------------------------------------------------PhysicalOlapScan[web_sales] +------------------------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF8 --------------------------------------------------PhysicalDistribute ----------------------------------------------------PhysicalProject ------------------------------------------------------filter((date_dim.d_year = 2000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query86.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query86.out index 59d287679e..66864e9bb0 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query86.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query86.out @@ -15,12 +15,12 @@ PhysicalResultSink ------------------------hashAgg[LOCAL] --------------------------PhysicalRepeat ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ws_item_sk] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = web_sales.ws_sold_date_sk))otherCondition=() +------------------------------------hashJoin[INNER_JOIN] hashCondition=((d1.d_date_sk = web_sales.ws_sold_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk] --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[web_sales] +----------------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 --------------------------------------PhysicalDistribute ----------------------------------------PhysicalProject ------------------------------------------filter((d1.d_month_seq <= 1235) and (d1.d_month_seq >= 1224)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query87.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query87.out index cf93a38df5..9fa8657ef4 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query87.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query87.out @@ -10,12 +10,12 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF1 c_customer_sk->[ss_customer_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------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] +------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((date_dim.d_month_seq <= 1195) and (date_dim.d_month_seq >= 1184)) @@ -27,12 +27,12 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[cs_bill_customer_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[cs_sold_date_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[catalog_sales] +------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((date_dim.d_month_seq <= 1195) and (date_dim.d_month_seq >= 1184)) @@ -44,12 +44,12 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_bill_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ws_bill_customer_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[web_sales] +------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 RF5 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((date_dim.d_month_seq <= 1195) and (date_dim.d_month_seq >= 1184)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query88.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query88.out index 198713620a..71b7c40ab2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query88.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query88.out @@ -13,12 +13,12 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF23 s_store_sk->[ss_store_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF22 hd_demo_sk->[ss_hdemo_sk] +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF21 t_time_sk->[ss_sold_time_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF21 RF22 RF23 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((time_dim.t_hour = 8) and (time_dim.t_minute >= 30)) @@ -36,12 +36,12 @@ PhysicalResultSink ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF20 s_store_sk->[ss_store_sk] ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF19 hd_demo_sk->[ss_hdemo_sk] +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF18 t_time_sk->[ss_sold_time_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[store_sales] +--------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF18 RF19 RF20 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((time_dim.t_hour = 9) and (time_dim.t_minute < 30)) @@ -59,12 +59,12 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF17 s_store_sk->[ss_store_sk] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() ---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF16 hd_demo_sk->[ss_hdemo_sk] +--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF15 t_time_sk->[ss_sold_time_sk] ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[store_sales] +------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF15 RF16 RF17 ----------------------------------PhysicalDistribute ------------------------------------PhysicalProject --------------------------------------filter((time_dim.t_hour = 9) and (time_dim.t_minute >= 30)) @@ -82,12 +82,12 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF14 s_store_sk->[ss_store_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF13 hd_demo_sk->[ss_hdemo_sk] +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF12 t_time_sk->[ss_sold_time_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[store_sales] +----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF12 RF13 RF14 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((time_dim.t_hour = 10) and (time_dim.t_minute < 30)) @@ -105,12 +105,12 @@ PhysicalResultSink ----------------PhysicalDistribute ------------------hashAgg[LOCAL] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF11 s_store_sk->[ss_store_sk] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF10 hd_demo_sk->[ss_hdemo_sk] +----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF9 t_time_sk->[ss_sold_time_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[store_sales] +--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF9 RF10 RF11 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((time_dim.t_hour = 10) and (time_dim.t_minute >= 30)) @@ -128,12 +128,12 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF8 s_store_sk->[ss_store_sk] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF7 hd_demo_sk->[ss_hdemo_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF6 t_time_sk->[ss_sold_time_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[store_sales] +------------------------------PhysicalOlapScan[store_sales] apply RFs: RF6 RF7 RF8 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((time_dim.t_hour = 11) and (time_dim.t_minute < 30)) @@ -151,12 +151,12 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF5 s_store_sk->[ss_store_sk] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF4 hd_demo_sk->[ss_hdemo_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF3 t_time_sk->[ss_sold_time_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[store_sales] +----------------------------PhysicalOlapScan[store_sales] apply RFs: RF3 RF4 RF5 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((time_dim.t_hour = 11) and (time_dim.t_minute >= 30)) @@ -174,12 +174,12 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF1 hd_demo_sk->[ss_hdemo_sk] +----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF0 t_time_sk->[ss_sold_time_sk] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[store_sales] +--------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((time_dim.t_hour = 12) and (time_dim.t_minute < 30)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query89.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query89.out index 80e478c28c..67fa4df76d 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query89.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query89.out @@ -15,13 +15,13 @@ PhysicalResultSink ------------------------PhysicalDistribute --------------------------hashAgg[LOCAL] ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ss_item_sk] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[store_sales] +------------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter(((i_category IN ('Electronics', 'Jewelry', 'Shoes') AND i_class IN ('athletic', 'portable', 'semi-precious')) OR (i_category IN ('Men', 'Music', 'Women') AND i_class IN ('accessories', 'maternity', 'rock')))) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query90.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query90.out index b771e1b766..869ed41d6d 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query90.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query90.out @@ -9,13 +9,13 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF5 hd_demo_sk->[ws_ship_hdemo_sk] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF4 t_time_sk->[ws_sold_time_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF3 wp_web_page_sk->[ws_web_page_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[web_sales] +------------------------------PhysicalOlapScan[web_sales] apply RFs: RF3 RF4 RF5 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((web_page.wp_char_count <= 5200) and (web_page.wp_char_count >= 5000)) @@ -33,13 +33,13 @@ PhysicalResultSink --------------PhysicalDistribute ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_ship_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF2 hd_demo_sk->[ws_ship_hdemo_sk] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk))otherCondition=() -----------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF1 t_time_sk->[ws_sold_time_sk] +----------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF0 wp_web_page_sk->[ws_web_page_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[web_sales] +--------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 RF2 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((web_page.wp_char_count <= 5200) and (web_page.wp_char_count >= 5000)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out index aacf125e56..1ea9610471 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out @@ -9,30 +9,30 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF5 c_current_addr_sk->[ca_address_sk] --------------------PhysicalProject ----------------------filter((customer_address.ca_gmt_offset = -6.00)) -------------------------PhysicalOlapScan[customer_address] +------------------------PhysicalOlapScan[customer_address] apply RFs: RF5 --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_call_center_sk = call_center.cc_call_center_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_call_center_sk = call_center.cc_call_center_sk)) otherCondition=() build RFs:RF4 cc_call_center_sk->[cr_call_center_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returning_customer_sk = customer.c_customer_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returning_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[cr_returning_customer_sk] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[cr_returned_date_sk] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[catalog_returns] +--------------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF2 RF3 RF4 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 2001)) ------------------------------------------PhysicalOlapScan[date_dim] ------------------------------PhysicalDistribute ---------------------------------hashJoin[INNER_JOIN] hashCondition=((household_demographics.hd_demo_sk = customer.c_current_hdemo_sk))otherCondition=() -----------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = customer.c_current_cdemo_sk))otherCondition=() +--------------------------------hashJoin[INNER_JOIN] hashCondition=((household_demographics.hd_demo_sk = customer.c_current_hdemo_sk)) otherCondition=() build RFs:RF1 hd_demo_sk->[c_current_hdemo_sk] +----------------------------------hashJoin[INNER_JOIN] hashCondition=((customer_demographics.cd_demo_sk = customer.c_current_cdemo_sk)) otherCondition=() build RFs:RF0 cd_demo_sk->[c_current_cdemo_sk] ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject -----------------------------------------PhysicalOlapScan[customer] +----------------------------------------PhysicalOlapScan[customer] apply RFs: RF0 RF1 ------------------------------------PhysicalDistribute --------------------------------------PhysicalProject ----------------------------------------filter((((customer_demographics.cd_marital_status = 'M') AND (customer_demographics.cd_education_status = 'Unknown')) OR ((customer_demographics.cd_marital_status = 'W') AND (customer_demographics.cd_education_status = 'Advanced Degree')))) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query92.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query92.out index f8f6faffbe..cb095c4426 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query92.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query92.out @@ -12,11 +12,11 @@ PhysicalResultSink ------------------PhysicalQuickSort[LOCAL_SORT] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((date_dim.d_date_sk = web_sales.ws_sold_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk] --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk = web_sales.ws_item_sk)) otherCondition=() build RFs:RF0 i_item_sk->[ws_item_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[web_sales] +--------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((item.i_manufact_id = 320)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query93.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query93.out index df740dc47a..a94e70c914 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query93.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query93.out @@ -8,12 +8,12 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and (store_returns.sr_ticket_number = store_sales.ss_ticket_number))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and (store_returns.sr_ticket_number = store_sales.ss_ticket_number)) otherCondition=() build RFs:RF1 sr_item_sk->[ss_item_sk];RF2 sr_ticket_number->[ss_ticket_number] ------------------PhysicalProject ---------------------PhysicalOlapScan[store_sales] -------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk))otherCondition=() +--------------------PhysicalOlapScan[store_sales] apply RFs: RF1 RF2 +------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk)) otherCondition=() build RFs:RF0 r_reason_sk->[sr_reason_sk] --------------------PhysicalProject -----------------------PhysicalOlapScan[store_returns] +----------------------PhysicalOlapScan[store_returns] apply RFs: RF0 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((reason.r_reason_desc = 'duplicate purchase')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query94.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query94.out index 0534f2a47f..4c4f311c28 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query94.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query94.out @@ -9,20 +9,20 @@ PhysicalResultSink ------------hashAgg[GLOBAL] --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws2.ws_order_number))otherCondition=(( not (ws_warehouse_sk = ws_warehouse_sk))) +------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws2.ws_order_number)) otherCondition=(( not (ws_warehouse_sk = ws_warehouse_sk))) build RFs:RF4 ws_order_number->[ws_order_number] --------------------PhysicalDistribute ----------------------PhysicalProject -------------------------PhysicalOlapScan[web_sales] ---------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((ws1.ws_order_number = wr1.wr_order_number))otherCondition=() +------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 +--------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((ws1.ws_order_number = wr1.wr_order_number)) otherCondition=() build RFs:RF3 ws_order_number->[wr_order_number] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------PhysicalOlapScan[web_returns] +--------------------------PhysicalOlapScan[web_returns] apply RFs: RF3 ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk))otherCondition=() ---------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk))otherCondition=() -----------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() build RFs:RF2 web_site_sk->[ws_web_site_sk] +--------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ws_ship_date_sk] +----------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF0 ca_address_sk->[ws_ship_addr_sk] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[web_sales] +--------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 RF2 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((customer_address.ca_state = 'OK')) 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 1659f43a7b..473e1adb85 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 @@ -3,10 +3,10 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --PhysicalCteProducer ( cteId=CTEId#0 ) ----PhysicalProject -------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_order_number = ws2.ws_order_number))otherCondition=(( not (ws_warehouse_sk = ws_warehouse_sk))) +------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_order_number = ws2.ws_order_number)) otherCondition=(( not (ws_warehouse_sk = ws_warehouse_sk))) build RFs:RF0 ws_order_number->[ws_order_number] --------PhysicalDistribute ----------PhysicalProject -------------PhysicalOlapScan[web_sales] +------------PhysicalOlapScan[web_sales] apply RFs: RF0 --------PhysicalDistribute ----------PhysicalProject ------------PhysicalOlapScan[web_sales] @@ -19,25 +19,25 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) --------------hashAgg[GLOBAL] ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number))otherCondition=() +--------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) -----------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = web_returns.wr_order_number))otherCondition=() +----------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) otherCondition=() build RFs:RF5 ws_order_number->[wr_order_number] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF4 wr_order_number->[ws_order_number] ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) ----------------------------PhysicalDistribute ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[web_returns] +--------------------------------PhysicalOlapScan[web_returns] apply RFs: RF5 ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk))otherCondition=() -----------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk))otherCondition=() -------------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() build RFs:RF3 web_site_sk->[ws_web_site_sk] +----------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[ws_ship_date_sk] +------------------------------hashJoin[INNER_JOIN] hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF1 ca_address_sk->[ws_ship_addr_sk] --------------------------------PhysicalProject -----------------------------------PhysicalOlapScan[web_sales] +----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 RF2 RF3 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((customer_address.ca_state = 'NC')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query96.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query96.out index ba329ef1e6..daf0b67a0e 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query96.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query96.out @@ -7,12 +7,12 @@ PhysicalResultSink --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF2 s_store_sk->[ss_store_sk] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk))otherCondition=() ---------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) otherCondition=() build RFs:RF1 hd_demo_sk->[ss_hdemo_sk] +--------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_time_sk = time_dim.t_time_sk)) otherCondition=() build RFs:RF0 t_time_sk->[ss_sold_time_sk] ----------------------PhysicalProject -------------------------PhysicalOlapScan[store_sales] +------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 RF2 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((time_dim.t_hour = 8) and (time_dim.t_minute >= 30)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query97.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query97.out index bf2180167a..7b8832c172 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query97.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query97.out @@ -7,15 +7,15 @@ PhysicalResultSink --------PhysicalDistribute ----------hashAgg[LOCAL] ------------PhysicalProject ---------------hashJoin[FULL_OUTER_JOIN] hashCondition=((ssci.customer_sk = csci.customer_sk) and (ssci.item_sk = csci.item_sk))otherCondition=() +--------------hashJoin[FULL_OUTER_JOIN] hashCondition=((ssci.customer_sk = csci.customer_sk) and (ssci.item_sk = csci.item_sk)) otherCondition=() ----------------PhysicalProject ------------------hashAgg[GLOBAL] --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[store_sales] +------------------------------PhysicalOlapScan[store_sales] apply RFs: RF1 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((date_dim.d_month_seq <= 1225) and (date_dim.d_month_seq >= 1214)) @@ -25,9 +25,9 @@ PhysicalResultSink --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[catalog_sales] +------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((date_dim.d_month_seq <= 1225) and (date_dim.d_month_seq >= 1214)) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query98.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query98.out index bde0951df8..d75c1d9409 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query98.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query98.out @@ -12,11 +12,11 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF1 i_item_sk->[ss_item_sk] --------------------------PhysicalDistribute -----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))otherCondition=() +----------------------------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] +--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((date_dim.d_date <= '2002-06-19') and (date_dim.d_date >= '2002-05-20')) diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query99.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query99.out index 2474748455..114e460066 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query99.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query99.out @@ -8,13 +8,13 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_warehouse_sk = warehouse.w_warehouse_sk)) otherCondition=() build RFs:RF3 w_warehouse_sk->[cs_warehouse_sk] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_mode_sk = ship_mode.sm_ship_mode_sk))otherCondition=() -----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_call_center_sk = call_center.cc_call_center_sk))otherCondition=() -------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_date_sk = date_dim.d_date_sk))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_mode_sk = ship_mode.sm_ship_mode_sk)) otherCondition=() build RFs:RF2 sm_ship_mode_sk->[cs_ship_mode_sk] +----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_call_center_sk = call_center.cc_call_center_sk)) otherCondition=() build RFs:RF1 cc_call_center_sk->[cs_call_center_sk] +------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_ship_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF0 d_date_sk->[cs_ship_date_sk] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[catalog_sales] +----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1 RF2 RF3 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((date_dim.d_month_seq <= 1235) and (date_dim.d_month_seq >= 1224)) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q1.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q1.out new file mode 100644 index 0000000000..3eb68a3c45 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q1.out @@ -0,0 +1,13 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------filter((lineitem.l_shipdate <= '1998-09-02')) +------------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q10.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q10.out new file mode 100644 index 0000000000..3e758dba97 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q10.out @@ -0,0 +1,30 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = nation.n_nationkey)) otherCondition=() +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF1 o_orderkey->[l_orderkey] +----------------------PhysicalProject +------------------------filter((lineitem.l_returnflag = 'R')) +--------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------filter((orders.o_orderdate < '1994-01-01') and (orders.o_orderdate >= '1993-10-01')) +----------------------------------PhysicalOlapScan[orders] +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[customer] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q11.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q11.out new file mode 100644 index 0000000000..b596d6c5d7 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q11.out @@ -0,0 +1,45 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------NestedLoopJoin[INNER_JOIN](cast(value as DOUBLE) > cast((sum((ps_supplycost * cast(ps_availqty as DECIMALV3(10, 0)))) * 0.000002) as DOUBLE)) +------------hashAgg[GLOBAL] +--------------PhysicalDistribute +----------------hashAgg[LOCAL] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF3 n_nationkey->[s_nationkey] +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF2 s_suppkey->[ps_suppkey] +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[partsupp] apply RFs: RF2 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[supplier] apply RFs: RF3 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter((nation.n_name = 'GERMANY')) +----------------------------PhysicalOlapScan[nation] +------------PhysicalDistribute +--------------PhysicalProject +----------------hashAgg[GLOBAL] +------------------PhysicalDistribute +--------------------hashAgg[LOCAL] +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF1 n_nationkey->[s_nationkey] +--------------------------PhysicalProject +----------------------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF0 s_suppkey->[ps_suppkey] +------------------------------PhysicalDistribute +--------------------------------PhysicalProject +----------------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 +------------------------------PhysicalDistribute +--------------------------------PhysicalProject +----------------------------------PhysicalOlapScan[supplier] apply RFs: RF1 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------filter((nation.n_name = 'GERMANY')) +--------------------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q12.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q12.out new file mode 100644 index 0000000000..c5e8f9cd43 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q12.out @@ -0,0 +1,17 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 l_orderkey->[o_orderkey] +------------------PhysicalProject +--------------------PhysicalOlapScan[orders] apply RFs: RF0 +------------------PhysicalProject +--------------------filter((lineitem.l_commitdate < lineitem.l_receiptdate) and (lineitem.l_receiptdate < '1995-01-01') and (lineitem.l_receiptdate >= '1994-01-01') and (lineitem.l_shipdate < lineitem.l_commitdate) and l_shipmode IN ('MAIL', 'SHIP')) +----------------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q13.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q13.out new file mode 100644 index 0000000000..dc58893d9c --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q13.out @@ -0,0 +1,21 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashAgg[LOCAL] +------------------PhysicalProject +--------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter(( not (o_comment like '%special%requests%'))) +----------------------------PhysicalOlapScan[orders] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q14.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q14.out new file mode 100644 index 0000000000..b7891c0fb3 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q14.out @@ -0,0 +1,17 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalProject +----hashAgg[GLOBAL] +------PhysicalDistribute +--------hashAgg[LOCAL] +----------PhysicalProject +------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = part.p_partkey)) otherCondition=() +--------------PhysicalDistribute +----------------PhysicalProject +------------------filter((lineitem.l_shipdate < '1995-10-01') and (lineitem.l_shipdate >= '1995-09-01')) +--------------------PhysicalOlapScan[lineitem] +--------------PhysicalDistribute +----------------PhysicalProject +------------------PhysicalOlapScan[part] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q15.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q15.out new file mode 100644 index 0000000000..041b0cf86f --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q15.out @@ -0,0 +1,31 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = revenue0.supplier_no)) otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((revenue0.total_revenue = max(total_revenue))) otherCondition=() +--------------PhysicalProject +----------------hashAgg[GLOBAL] +------------------PhysicalDistribute +--------------------hashAgg[LOCAL] +----------------------PhysicalProject +------------------------filter((lineitem.l_shipdate < '1996-04-01') and (lineitem.l_shipdate >= '1996-01-01')) +--------------------------PhysicalOlapScan[lineitem] +--------------PhysicalDistribute +----------------hashAgg[GLOBAL] +------------------PhysicalDistribute +--------------------hashAgg[LOCAL] +----------------------PhysicalProject +------------------------hashAgg[GLOBAL] +--------------------------PhysicalDistribute +----------------------------hashAgg[LOCAL] +------------------------------PhysicalProject +--------------------------------filter((lineitem.l_shipdate < '1996-04-01') and (lineitem.l_shipdate >= '1996-01-01')) +----------------------------------PhysicalOlapScan[lineitem] +------------PhysicalDistribute +--------------PhysicalProject +----------------PhysicalOlapScan[supplier] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q16.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q16.out new file mode 100644 index 0000000000..a59b027c42 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q16.out @@ -0,0 +1,25 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey)) otherCondition=() build RFs:RF0 p_partkey->[ps_partkey] +------------------PhysicalDistribute +--------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter((s_comment like '%Customer%Complaints%')) +----------------------------PhysicalOlapScan[supplier] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------filter(( not (p_brand = 'Brand#45')) and ( not (p_type like 'MEDIUM POLISHED%')) and p_size IN (14, 19, 23, 3, 36, 45, 49, 9)) +------------------------PhysicalOlapScan[part] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q17.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q17.out new file mode 100644 index 0000000000..7ea128caa6 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q17.out @@ -0,0 +1,21 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalProject +----hashAgg[GLOBAL] +------PhysicalDistribute +--------hashAgg[LOCAL] +----------PhysicalProject +------------filter((cast(l_quantity as DECIMALV3(38, 5)) < (0.2 * avg(cast(l_quantity as DECIMALV3(17, 4))) OVER(PARTITION BY p_partkey)))) +--------------PhysicalWindow +----------------PhysicalQuickSort[LOCAL_SORT] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF0 p_partkey->[l_partkey] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter((part.p_brand = 'Brand#23') and (part.p_container = 'MED BOX')) +----------------------------PhysicalOlapScan[part] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q18.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q18.out new file mode 100644 index 0000000000..eaee8a42ed --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q18.out @@ -0,0 +1,27 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[LOCAL] +----------PhysicalProject +------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF2 o_orderkey->[l_orderkey] +--------------PhysicalProject +----------------PhysicalOlapScan[lineitem] apply RFs: RF2 +--------------PhysicalDistribute +----------------PhysicalProject +------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() +--------------------PhysicalDistribute +----------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 l_orderkey->[o_orderkey] +------------------------PhysicalProject +--------------------------PhysicalOlapScan[orders] apply RFs: RF0 +------------------------PhysicalProject +--------------------------filter((sum(l_quantity) > 300.00)) +----------------------------hashAgg[LOCAL] +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[lineitem] +--------------------PhysicalDistribute +----------------------PhysicalProject +------------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.out new file mode 100644 index 0000000000..14765ad432 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.out @@ -0,0 +1,17 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--hashAgg[GLOBAL] +----PhysicalDistribute +------hashAgg[LOCAL] +--------PhysicalProject +----------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=(((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND ((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND (part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10))) OR ((((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) AND (part.p_size <= 15)))) build RFs:RF0 p_partkey->[l_partkey] +------------PhysicalDistribute +--------------PhysicalProject +----------------filter(((((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00)) OR ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) OR ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) and (lineitem.l_shipinstruct = 'DELIVER IN PERSON') and l_shipmode IN ('AIR REG', 'AIR')) +------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +------------PhysicalDistribute +--------------PhysicalProject +----------------filter((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND (part.p_size <= 5)) OR (((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND (part.p_size <= 10))) OR (((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND (part.p_size <= 15))) and (part.p_size >= 1)) +------------------PhysicalOlapScan[part] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q2.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q2.out new file mode 100644 index 0000000000..e6b4da4096 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q2.out @@ -0,0 +1,35 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------PhysicalProject +----------filter((partsupp.ps_supplycost = min(ps_supplycost) OVER(PARTITION BY p_partkey))) +------------PhysicalWindow +--------------PhysicalQuickSort[LOCAL_SORT] +----------------PhysicalDistribute +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF3 r_regionkey->[n_regionkey] +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF2 n_nationkey->[s_nationkey] +--------------------------PhysicalProject +----------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = partsupp.ps_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[ps_suppkey] +------------------------------PhysicalDistribute +--------------------------------PhysicalProject +----------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey)) otherCondition=() build RFs:RF0 p_partkey->[ps_partkey] +------------------------------------PhysicalProject +--------------------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 RF1 +------------------------------------PhysicalProject +--------------------------------------filter((p_type like '%BRASS') and (part.p_size = 15)) +----------------------------------------PhysicalOlapScan[part] +------------------------------PhysicalDistribute +--------------------------------PhysicalOlapScan[supplier] apply RFs: RF2 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[nation] apply RFs: RF3 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter((region.r_name = 'EUROPE')) +----------------------------PhysicalOlapScan[region] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20-rewrite.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20-rewrite.out new file mode 100644 index 0000000000..d5c55fe60f --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20-rewrite.out @@ -0,0 +1,35 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF4 n_nationkey->[s_nationkey] +------------PhysicalProject +--------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((supplier.s_suppkey = t3.ps_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[ps_suppkey] +----------------PhysicalDistribute +------------------PhysicalProject +--------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((partsupp.ps_partkey = part.p_partkey)) otherCondition=() build RFs:RF2 p_partkey->[ps_partkey] +----------------------hashJoin[INNER_JOIN] hashCondition=((t2.l_partkey = t1.ps_partkey) and (t2.l_suppkey = t1.ps_suppkey)) otherCondition=((cast(ps_availqty as DECIMALV3(38, 3)) > t2.l_q)) build RFs:RF0 l_partkey->[ps_partkey];RF1 l_suppkey->[ps_suppkey] +------------------------PhysicalProject +--------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 RF1 RF2 RF3 +------------------------PhysicalDistribute +--------------------------PhysicalProject +----------------------------hashAgg[GLOBAL] +------------------------------PhysicalDistribute +--------------------------------hashAgg[LOCAL] +----------------------------------PhysicalProject +------------------------------------filter((lineitem.l_shipdate < '1995-01-01') and (lineitem.l_shipdate >= '1994-01-01')) +--------------------------------------PhysicalOlapScan[lineitem] +----------------------PhysicalProject +------------------------filter((p_name like 'forest%')) +--------------------------PhysicalOlapScan[part] +----------------PhysicalDistribute +------------------PhysicalProject +--------------------PhysicalOlapScan[supplier] apply RFs: RF4 +------------PhysicalDistribute +--------------PhysicalProject +----------------filter((nation.n_name = 'CANADA')) +------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20.out new file mode 100644 index 0000000000..bf5c2c2286 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20.out @@ -0,0 +1,34 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF4 n_nationkey->[s_nationkey] +------------PhysicalProject +--------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((supplier.s_suppkey = partsupp.ps_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[ps_suppkey] +----------------PhysicalDistribute +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = partsupp.ps_partkey) and (lineitem.l_suppkey = partsupp.ps_suppkey)) otherCondition=((cast(ps_availqty as DECIMALV3(38, 3)) > (0.5 * sum(l_quantity)))) build RFs:RF1 l_partkey->[ps_partkey];RF2 l_suppkey->[ps_suppkey] +----------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((partsupp.ps_partkey = part.p_partkey)) otherCondition=() build RFs:RF0 p_partkey->[ps_partkey] +------------------------PhysicalProject +--------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 RF1 RF2 RF3 +------------------------PhysicalProject +--------------------------filter((p_name like 'forest%')) +----------------------------PhysicalOlapScan[part] +----------------------PhysicalDistribute +------------------------hashAgg[GLOBAL] +--------------------------PhysicalDistribute +----------------------------hashAgg[LOCAL] +------------------------------PhysicalProject +--------------------------------filter((lineitem.l_shipdate < '1995-01-01') and (lineitem.l_shipdate >= '1994-01-01')) +----------------------------------PhysicalOlapScan[lineitem] +----------------PhysicalDistribute +------------------PhysicalProject +--------------------PhysicalOlapScan[supplier] apply RFs: RF4 +------------PhysicalDistribute +--------------PhysicalProject +----------------filter((nation.n_name = 'CANADA')) +------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q21.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q21.out new file mode 100644 index 0000000000..fba23d229a --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q21.out @@ -0,0 +1,36 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF3 n_nationkey->[s_nationkey] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = l1.l_suppkey)) otherCondition=() build RFs:RF2 s_suppkey->[l_suppkey] +----------------------PhysicalDistribute +------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = l1.l_orderkey)) otherCondition=() build RFs:RF1 o_orderkey->[l_orderkey] +--------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((l3.l_orderkey = l1.l_orderkey)) otherCondition=(( not (l_suppkey = l_suppkey))) +----------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((l2.l_orderkey = l1.l_orderkey)) otherCondition=(( not (l_suppkey = l_suppkey))) build RFs:RF0 l_orderkey->[l_orderkey] +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +------------------------------PhysicalProject +--------------------------------filter((l1.l_receiptdate > l1.l_commitdate)) +----------------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 RF2 +----------------------------PhysicalProject +------------------------------filter((l3.l_receiptdate > l3.l_commitdate)) +--------------------------------PhysicalOlapScan[lineitem] +--------------------------PhysicalProject +----------------------------filter((orders.o_orderstatus = 'F')) +------------------------------PhysicalOlapScan[orders] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[supplier] apply RFs: RF3 +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------filter((nation.n_name = 'SAUDI ARABIA')) +------------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q22.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q22.out new file mode 100644 index 0000000000..22caa65035 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q22.out @@ -0,0 +1,27 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((orders.o_custkey = customer.c_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------PhysicalOlapScan[orders] apply RFs: RF0 +------------------PhysicalDistribute +--------------------NestedLoopJoin[INNER_JOIN](cast(c_acctbal as DECIMALV3(38, 4)) > avg(cast(c_acctbal as DECIMALV3(17, 4)))) +----------------------PhysicalProject +------------------------filter(substring(c_phone, 1, 2) IN ('13', '17', '18', '23', '29', '30', '31')) +--------------------------PhysicalOlapScan[customer] +----------------------PhysicalDistribute +------------------------hashAgg[GLOBAL] +--------------------------PhysicalDistribute +----------------------------hashAgg[LOCAL] +------------------------------PhysicalProject +--------------------------------filter((customer.c_acctbal > 0.00) and substring(c_phone, 1, 2) IN ('13', '17', '18', '23', '29', '30', '31')) +----------------------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q3.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q3.out new file mode 100644 index 0000000000..b772e8ff62 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q3.out @@ -0,0 +1,24 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[LOCAL] +----------PhysicalProject +------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF1 o_orderkey->[l_orderkey] +--------------PhysicalProject +----------------filter((lineitem.l_shipdate > '1995-03-15')) +------------------PhysicalOlapScan[lineitem] apply RFs: RF1 +--------------PhysicalDistribute +----------------PhysicalProject +------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] +--------------------PhysicalDistribute +----------------------PhysicalProject +------------------------filter((orders.o_orderdate < '1995-03-15')) +--------------------------PhysicalOlapScan[orders] apply RFs: RF0 +--------------------PhysicalDistribute +----------------------PhysicalProject +------------------------filter((customer.c_mktsegment = 'BUILDING')) +--------------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q4.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q4.out new file mode 100644 index 0000000000..551ae531e9 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q4.out @@ -0,0 +1,18 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF0 o_orderkey->[l_orderkey] +------------------PhysicalProject +--------------------filter((lineitem.l_commitdate < lineitem.l_receiptdate)) +----------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +------------------PhysicalProject +--------------------filter((orders.o_orderdate < '1993-10-01') and (orders.o_orderdate >= '1993-07-01')) +----------------------PhysicalOlapScan[orders] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q5.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q5.out new file mode 100644 index 0000000000..5a32b8a41f --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q5.out @@ -0,0 +1,41 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF5 r_regionkey->[n_regionkey] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF4 n_nationkey->[s_nationkey] +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = supplier.s_nationkey) and (lineitem.l_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF2 s_suppkey->[l_suppkey];RF3 s_nationkey->[c_nationkey] +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF1 o_orderkey->[l_orderkey] +--------------------------------PhysicalProject +----------------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 RF2 +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] +--------------------------------------PhysicalDistribute +----------------------------------------PhysicalProject +------------------------------------------filter((orders.o_orderdate < '1995-01-01') and (orders.o_orderdate >= '1994-01-01')) +--------------------------------------------PhysicalOlapScan[orders] apply RFs: RF0 +--------------------------------------PhysicalDistribute +----------------------------------------PhysicalProject +------------------------------------------PhysicalOlapScan[customer] apply RFs: RF3 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[supplier] apply RFs: RF4 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[nation] apply RFs: RF5 +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------filter((region.r_name = 'ASIA')) +------------------------PhysicalOlapScan[region] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q6.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q6.out new file mode 100644 index 0000000000..7976f47c6b --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q6.out @@ -0,0 +1,10 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--hashAgg[GLOBAL] +----PhysicalDistribute +------hashAgg[LOCAL] +--------PhysicalProject +----------filter((lineitem.l_discount <= 0.07) and (lineitem.l_discount >= 0.05) and (lineitem.l_quantity < 24.00) and (lineitem.l_shipdate < '1995-01-01') and (lineitem.l_shipdate >= '1994-01-01')) +------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.out new file mode 100644 index 0000000000..0a7754c55f --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.out @@ -0,0 +1,40 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = n2.n_nationkey)) otherCondition=((((n1.n_name = 'FRANCE') AND (n2.n_name = 'GERMANY')) OR ((n1.n_name = 'GERMANY') AND (n2.n_name = 'FRANCE')))) build RFs:RF4 n_nationkey->[c_nationkey] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = n1.n_nationkey)) otherCondition=() build RFs:RF3 n_nationkey->[s_nationkey] +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF2 c_custkey->[o_custkey] +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[l_suppkey] +--------------------------------PhysicalDistribute +----------------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 l_orderkey->[o_orderkey] +------------------------------------PhysicalProject +--------------------------------------PhysicalOlapScan[orders] apply RFs: RF0 RF2 +------------------------------------PhysicalProject +--------------------------------------filter((lineitem.l_shipdate <= '1996-12-31') and (lineitem.l_shipdate >= '1995-01-01')) +----------------------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------PhysicalOlapScan[supplier] apply RFs: RF3 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[customer] apply RFs: RF4 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter(((n1.n_name = 'FRANCE') OR (n1.n_name = 'GERMANY'))) +----------------------------PhysicalOlapScan[nation] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------filter(((n2.n_name = 'GERMANY') OR (n2.n_name = 'FRANCE'))) +------------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q8.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q8.out new file mode 100644 index 0000000000..b7d21c4008 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q8.out @@ -0,0 +1,55 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashAgg[GLOBAL] +------------PhysicalDistribute +--------------hashAgg[LOCAL] +----------------PhysicalProject +------------------hashJoin[INNER_JOIN] hashCondition=((n1.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF6 r_regionkey->[n_regionkey] +--------------------PhysicalProject +----------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = n2.n_nationkey)) otherCondition=() +------------------------PhysicalProject +--------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = n1.n_nationkey)) otherCondition=() build RFs:RF4 n_nationkey->[c_nationkey] +----------------------------PhysicalProject +------------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_custkey = customer.c_custkey)) otherCondition=() build RFs:RF3 c_custkey->[o_custkey] +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF2 o_orderkey->[l_orderkey] +--------------------------------------PhysicalDistribute +----------------------------------------PhysicalProject +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() +--------------------------------------------PhysicalDistribute +----------------------------------------------PhysicalProject +------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF0 p_partkey->[l_partkey] +--------------------------------------------------PhysicalDistribute +----------------------------------------------------PhysicalProject +------------------------------------------------------PhysicalOlapScan[lineitem] apply RFs: RF0 RF2 +--------------------------------------------------PhysicalDistribute +----------------------------------------------------PhysicalProject +------------------------------------------------------filter((part.p_type = 'ECONOMY ANODIZED STEEL')) +--------------------------------------------------------PhysicalOlapScan[part] +--------------------------------------------PhysicalDistribute +----------------------------------------------PhysicalProject +------------------------------------------------PhysicalOlapScan[supplier] +--------------------------------------PhysicalDistribute +----------------------------------------PhysicalProject +------------------------------------------filter((orders.o_orderdate <= '1996-12-31') and (orders.o_orderdate >= '1995-01-01')) +--------------------------------------------PhysicalOlapScan[orders] apply RFs: RF3 +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------PhysicalOlapScan[customer] apply RFs: RF4 +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[nation] apply RFs: RF6 +------------------------PhysicalDistribute +--------------------------PhysicalProject +----------------------------PhysicalOlapScan[nation] +--------------------PhysicalDistribute +----------------------PhysicalProject +------------------------filter((region.r_name = 'AMERICA')) +--------------------------PhysicalOlapScan[region] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q9.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q9.out new file mode 100644 index 0000000000..a6f2968eca --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q9.out @@ -0,0 +1,38 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_partkey = lineitem.l_partkey) and (partsupp.ps_suppkey = lineitem.l_suppkey)) otherCondition=() +----------------------------PhysicalProject +------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF1 p_partkey->[l_partkey] +--------------------------------PhysicalDistribute +----------------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() +------------------------------------PhysicalProject +--------------------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 +------------------------------------PhysicalProject +--------------------------------------PhysicalOlapScan[orders] +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------filter((p_name like '%green%')) +--------------------------------------PhysicalOlapScan[part] +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[partsupp] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[supplier] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q1.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q1.out new file mode 100644 index 0000000000..3eb68a3c45 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q1.out @@ -0,0 +1,13 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------filter((lineitem.l_shipdate <= '1998-09-02')) +------------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q10.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q10.out new file mode 100644 index 0000000000..2edacf27e0 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q10.out @@ -0,0 +1,28 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF2 o_orderkey->[l_orderkey] +------------------PhysicalProject +--------------------filter((lineitem.l_returnflag = 'R')) +----------------------PhysicalOlapScan[lineitem] apply RFs: RF2 +------------------PhysicalDistribute +--------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = nation.n_nationkey)) otherCondition=() +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 o_custkey->[c_custkey] +--------------------------PhysicalProject +----------------------------PhysicalOlapScan[customer] apply RFs: RF0 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------filter((orders.o_orderdate < '1994-01-01') and (orders.o_orderdate >= '1993-10-01')) +--------------------------------PhysicalOlapScan[orders] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q11.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q11.out new file mode 100644 index 0000000000..405d1c1661 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q11.out @@ -0,0 +1,39 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------NestedLoopJoin[INNER_JOIN](cast(value as DOUBLE) > cast((sum((ps_supplycost * cast(ps_availqty as DECIMALV3(10, 0)))) * 0.000002) as DOUBLE)) +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[ps_suppkey] +------------------PhysicalProject +--------------------PhysicalOlapScan[partsupp] apply RFs: RF3 +------------------PhysicalDistribute +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF2 n_nationkey->[s_nationkey] +----------------------PhysicalProject +------------------------PhysicalOlapScan[supplier] apply RFs: RF2 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter((nation.n_name = 'GERMANY')) +----------------------------PhysicalOlapScan[nation] +------------PhysicalDistribute +--------------PhysicalProject +----------------hashAgg[GLOBAL] +------------------PhysicalDistribute +--------------------hashAgg[LOCAL] +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[ps_suppkey] +--------------------------PhysicalProject +----------------------------PhysicalOlapScan[partsupp] apply RFs: RF1 +--------------------------PhysicalDistribute +----------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[s_nationkey] +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[supplier] apply RFs: RF0 +------------------------------PhysicalDistribute +--------------------------------PhysicalProject +----------------------------------filter((nation.n_name = 'GERMANY')) +------------------------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q12.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q12.out new file mode 100644 index 0000000000..c5e8f9cd43 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q12.out @@ -0,0 +1,17 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 l_orderkey->[o_orderkey] +------------------PhysicalProject +--------------------PhysicalOlapScan[orders] apply RFs: RF0 +------------------PhysicalProject +--------------------filter((lineitem.l_commitdate < lineitem.l_receiptdate) and (lineitem.l_receiptdate < '1995-01-01') and (lineitem.l_receiptdate >= '1994-01-01') and (lineitem.l_shipdate < lineitem.l_commitdate) and l_shipmode IN ('MAIL', 'SHIP')) +----------------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q13.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q13.out new file mode 100644 index 0000000000..dc58893d9c --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q13.out @@ -0,0 +1,21 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashAgg[LOCAL] +------------------PhysicalProject +--------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter(( not (o_comment like '%special%requests%'))) +----------------------------PhysicalOlapScan[orders] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q14.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q14.out new file mode 100644 index 0000000000..0d44b05831 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q14.out @@ -0,0 +1,16 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalProject +----hashAgg[GLOBAL] +------PhysicalDistribute +--------hashAgg[LOCAL] +----------PhysicalProject +------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = part.p_partkey)) otherCondition=() build RFs:RF0 l_partkey->[p_partkey] +--------------PhysicalProject +----------------PhysicalOlapScan[part] apply RFs: RF0 +--------------PhysicalDistribute +----------------PhysicalProject +------------------filter((lineitem.l_shipdate < '1995-10-01') and (lineitem.l_shipdate >= '1995-09-01')) +--------------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q15.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q15.out new file mode 100644 index 0000000000..f83be70876 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q15.out @@ -0,0 +1,31 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = revenue0.supplier_no)) otherCondition=() build RFs:RF0 supplier_no->[s_suppkey] +------------PhysicalProject +--------------PhysicalOlapScan[supplier] apply RFs: RF0 +------------PhysicalDistribute +--------------hashJoin[INNER_JOIN] hashCondition=((revenue0.total_revenue = max(total_revenue))) otherCondition=() +----------------PhysicalProject +------------------hashAgg[GLOBAL] +--------------------PhysicalDistribute +----------------------hashAgg[LOCAL] +------------------------PhysicalProject +--------------------------filter((lineitem.l_shipdate < '1996-04-01') and (lineitem.l_shipdate >= '1996-01-01')) +----------------------------PhysicalOlapScan[lineitem] +----------------PhysicalDistribute +------------------hashAgg[GLOBAL] +--------------------PhysicalDistribute +----------------------hashAgg[LOCAL] +------------------------PhysicalProject +--------------------------hashAgg[GLOBAL] +----------------------------PhysicalDistribute +------------------------------hashAgg[LOCAL] +--------------------------------PhysicalProject +----------------------------------filter((lineitem.l_shipdate < '1996-04-01') and (lineitem.l_shipdate >= '1996-01-01')) +------------------------------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q16.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q16.out new file mode 100644 index 0000000000..3a186ed911 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q16.out @@ -0,0 +1,23 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() +------------------PhysicalDistribute +--------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey)) otherCondition=() build RFs:RF0 p_partkey->[ps_partkey] +----------------------PhysicalProject +------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 +----------------------PhysicalProject +------------------------filter(( not (p_brand = 'Brand#45')) and ( not (p_type like 'MEDIUM POLISHED%')) and p_size IN (14, 19, 23, 3, 36, 45, 49, 9)) +--------------------------PhysicalOlapScan[part] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------filter((s_comment like '%Customer%Complaints%')) +------------------------PhysicalOlapScan[supplier] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q17.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q17.out new file mode 100644 index 0000000000..02b486eee9 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q17.out @@ -0,0 +1,21 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalProject +----hashAgg[GLOBAL] +------PhysicalDistribute +--------hashAgg[LOCAL] +----------PhysicalProject +------------filter((cast(l_quantity as DECIMALV3(38, 5)) < (0.2 * avg(cast(l_quantity as DECIMALV3(17, 4))) OVER(PARTITION BY p_partkey)))) +--------------PhysicalWindow +----------------PhysicalQuickSort[LOCAL_SORT] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF0 p_partkey->[l_partkey] +------------------------PhysicalProject +--------------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +------------------------PhysicalDistribute +--------------------------PhysicalProject +----------------------------filter((part.p_brand = 'Brand#23') and (part.p_container = 'MED BOX')) +------------------------------PhysicalOlapScan[part] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q18.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q18.out new file mode 100644 index 0000000000..5e3963df20 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q18.out @@ -0,0 +1,26 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[LOCAL] +----------PhysicalProject +------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF2 o_orderkey->[l_orderkey] +--------------PhysicalProject +----------------PhysicalOlapScan[lineitem] apply RFs: RF2 +--------------PhysicalDistribute +----------------PhysicalProject +------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF1 o_custkey->[c_custkey] +--------------------PhysicalProject +----------------------PhysicalOlapScan[customer] apply RFs: RF1 +--------------------PhysicalDistribute +----------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 l_orderkey->[o_orderkey] +------------------------PhysicalProject +--------------------------PhysicalOlapScan[orders] apply RFs: RF0 +------------------------PhysicalProject +--------------------------filter((sum(l_quantity) > 300.00)) +----------------------------hashAgg[LOCAL] +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q19.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q19.out new file mode 100644 index 0000000000..4ad887fd52 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q19.out @@ -0,0 +1,16 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--hashAgg[GLOBAL] +----PhysicalDistribute +------hashAgg[LOCAL] +--------PhysicalProject +----------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=(((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND ((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND (part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10))) OR ((((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) AND (part.p_size <= 15)))) build RFs:RF0 p_partkey->[l_partkey] +------------PhysicalProject +--------------filter(((((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00)) OR ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) OR ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) and (lineitem.l_shipinstruct = 'DELIVER IN PERSON') and l_shipmode IN ('AIR REG', 'AIR')) +----------------PhysicalOlapScan[lineitem] apply RFs: RF0 +------------PhysicalDistribute +--------------PhysicalProject +----------------filter((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND (part.p_size <= 5)) OR (((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND (part.p_size <= 10))) OR (((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND (part.p_size <= 15))) and (part.p_size >= 1)) +------------------PhysicalOlapScan[part] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q2.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q2.out new file mode 100644 index 0000000000..9915ea40a5 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q2.out @@ -0,0 +1,35 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------PhysicalProject +----------filter((partsupp.ps_supplycost = min(ps_supplycost) OVER(PARTITION BY p_partkey))) +------------PhysicalWindow +--------------PhysicalQuickSort[LOCAL_SORT] +----------------PhysicalDistribute +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = partsupp.ps_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[ps_suppkey] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey)) otherCondition=() build RFs:RF2 p_partkey->[ps_partkey] +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[partsupp] apply RFs: RF2 RF3 +----------------------------PhysicalProject +------------------------------filter((p_type like '%BRASS') and (part.p_size = 15)) +--------------------------------PhysicalOlapScan[part] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF1 n_nationkey->[s_nationkey] +----------------------------PhysicalOlapScan[supplier] apply RFs: RF1 +----------------------------PhysicalDistribute +------------------------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF0 r_regionkey->[n_regionkey] +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------PhysicalOlapScan[nation] apply RFs: RF0 +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------filter((region.r_name = 'EUROPE')) +--------------------------------------PhysicalOlapScan[region] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q20-rewrite.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q20-rewrite.out new file mode 100644 index 0000000000..99204372ce --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q20-rewrite.out @@ -0,0 +1,34 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((supplier.s_suppkey = t3.ps_suppkey)) otherCondition=() build RFs:RF4 s_suppkey->[ps_suppkey] +------------PhysicalDistribute +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((t2.l_partkey = t1.ps_partkey) and (t2.l_suppkey = t1.ps_suppkey)) otherCondition=((cast(ps_availqty as DECIMALV3(38, 3)) > t2.l_q)) build RFs:RF2 ps_partkey->[l_partkey];RF3 ps_suppkey->[l_suppkey] +------------------PhysicalProject +--------------------hashAgg[GLOBAL] +----------------------PhysicalDistribute +------------------------hashAgg[LOCAL] +--------------------------PhysicalProject +----------------------------filter((lineitem.l_shipdate < '1995-01-01') and (lineitem.l_shipdate >= '1994-01-01')) +------------------------------PhysicalOlapScan[lineitem] apply RFs: RF2 RF3 +------------------PhysicalDistribute +--------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((partsupp.ps_partkey = part.p_partkey)) otherCondition=() build RFs:RF1 p_partkey->[ps_partkey] +----------------------PhysicalProject +------------------------PhysicalOlapScan[partsupp] apply RFs: RF1 RF4 +----------------------PhysicalProject +------------------------filter((p_name like 'forest%')) +--------------------------PhysicalOlapScan[part] +------------PhysicalDistribute +--------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[s_nationkey] +----------------PhysicalProject +------------------PhysicalOlapScan[supplier] apply RFs: RF0 +----------------PhysicalDistribute +------------------PhysicalProject +--------------------filter((nation.n_name = 'CANADA')) +----------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q20.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q20.out new file mode 100644 index 0000000000..5a79903bb8 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q20.out @@ -0,0 +1,33 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((supplier.s_suppkey = partsupp.ps_suppkey)) otherCondition=() build RFs:RF4 s_suppkey->[ps_suppkey] +------------PhysicalDistribute +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = partsupp.ps_partkey) and (lineitem.l_suppkey = partsupp.ps_suppkey)) otherCondition=((cast(ps_availqty as DECIMALV3(38, 3)) > (0.5 * sum(l_quantity)))) build RFs:RF2 ps_partkey->[l_partkey];RF3 ps_suppkey->[l_suppkey] +------------------hashAgg[GLOBAL] +--------------------PhysicalDistribute +----------------------hashAgg[LOCAL] +------------------------PhysicalProject +--------------------------filter((lineitem.l_shipdate < '1995-01-01') and (lineitem.l_shipdate >= '1994-01-01')) +----------------------------PhysicalOlapScan[lineitem] apply RFs: RF2 RF3 +------------------PhysicalDistribute +--------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((partsupp.ps_partkey = part.p_partkey)) otherCondition=() build RFs:RF1 p_partkey->[ps_partkey] +----------------------PhysicalProject +------------------------PhysicalOlapScan[partsupp] apply RFs: RF1 RF4 +----------------------PhysicalProject +------------------------filter((p_name like 'forest%')) +--------------------------PhysicalOlapScan[part] +------------PhysicalDistribute +--------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[s_nationkey] +----------------PhysicalProject +------------------PhysicalOlapScan[supplier] apply RFs: RF0 +----------------PhysicalDistribute +------------------PhysicalProject +--------------------filter((nation.n_name = 'CANADA')) +----------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q21.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q21.out new file mode 100644 index 0000000000..3fecd7bad5 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q21.out @@ -0,0 +1,34 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((l2.l_orderkey = l1.l_orderkey)) otherCondition=(( not (l_suppkey = l_suppkey))) build RFs:RF4 l_orderkey->[l_orderkey] +------------------PhysicalProject +--------------------PhysicalOlapScan[lineitem] apply RFs: RF4 +------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = l1.l_orderkey)) otherCondition=() build RFs:RF3 l_orderkey->[o_orderkey] +--------------------PhysicalProject +----------------------filter((orders.o_orderstatus = 'F')) +------------------------PhysicalOlapScan[orders] apply RFs: RF3 +--------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((l3.l_orderkey = l1.l_orderkey)) otherCondition=(( not (l_suppkey = l_suppkey))) build RFs:RF2 l_orderkey->[l_orderkey] +----------------------PhysicalProject +------------------------filter((l3.l_receiptdate > l3.l_commitdate)) +--------------------------PhysicalOlapScan[lineitem] apply RFs: RF2 +----------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = l1.l_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[l_suppkey] +------------------------PhysicalProject +--------------------------filter((l1.l_receiptdate > l1.l_commitdate)) +----------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 +------------------------PhysicalDistribute +--------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[s_nationkey] +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[supplier] apply RFs: RF0 +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------filter((nation.n_name = 'SAUDI ARABIA')) +----------------------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q22.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q22.out new file mode 100644 index 0000000000..22caa65035 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q22.out @@ -0,0 +1,27 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((orders.o_custkey = customer.c_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------PhysicalOlapScan[orders] apply RFs: RF0 +------------------PhysicalDistribute +--------------------NestedLoopJoin[INNER_JOIN](cast(c_acctbal as DECIMALV3(38, 4)) > avg(cast(c_acctbal as DECIMALV3(17, 4)))) +----------------------PhysicalProject +------------------------filter(substring(c_phone, 1, 2) IN ('13', '17', '18', '23', '29', '30', '31')) +--------------------------PhysicalOlapScan[customer] +----------------------PhysicalDistribute +------------------------hashAgg[GLOBAL] +--------------------------PhysicalDistribute +----------------------------hashAgg[LOCAL] +------------------------------PhysicalProject +--------------------------------filter((customer.c_acctbal > 0.00) and substring(c_phone, 1, 2) IN ('13', '17', '18', '23', '29', '30', '31')) +----------------------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q3.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q3.out new file mode 100644 index 0000000000..b772e8ff62 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q3.out @@ -0,0 +1,24 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[LOCAL] +----------PhysicalProject +------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF1 o_orderkey->[l_orderkey] +--------------PhysicalProject +----------------filter((lineitem.l_shipdate > '1995-03-15')) +------------------PhysicalOlapScan[lineitem] apply RFs: RF1 +--------------PhysicalDistribute +----------------PhysicalProject +------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] +--------------------PhysicalDistribute +----------------------PhysicalProject +------------------------filter((orders.o_orderdate < '1995-03-15')) +--------------------------PhysicalOlapScan[orders] apply RFs: RF0 +--------------------PhysicalDistribute +----------------------PhysicalProject +------------------------filter((customer.c_mktsegment = 'BUILDING')) +--------------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q4.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q4.out new file mode 100644 index 0000000000..551ae531e9 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q4.out @@ -0,0 +1,18 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF0 o_orderkey->[l_orderkey] +------------------PhysicalProject +--------------------filter((lineitem.l_commitdate < lineitem.l_receiptdate)) +----------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +------------------PhysicalProject +--------------------filter((orders.o_orderdate < '1993-10-01') and (orders.o_orderdate >= '1993-07-01')) +----------------------PhysicalOlapScan[orders] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q5.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q5.out new file mode 100644 index 0000000000..a465737895 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q5.out @@ -0,0 +1,38 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey) and (customer.c_nationkey = supplier.s_nationkey)) otherCondition=() +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[l_suppkey] +------------------------PhysicalProject +--------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF2 o_orderkey->[l_orderkey] +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[lineitem] apply RFs: RF2 RF3 +----------------------------PhysicalProject +------------------------------filter((orders.o_orderdate < '1995-01-01') and (orders.o_orderdate >= '1994-01-01')) +--------------------------------PhysicalOlapScan[orders] +------------------------PhysicalDistribute +--------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF1 n_nationkey->[s_nationkey] +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[supplier] apply RFs: RF1 +----------------------------PhysicalDistribute +------------------------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF0 r_regionkey->[n_regionkey] +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------PhysicalOlapScan[nation] apply RFs: RF0 +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------filter((region.r_name = 'ASIA')) +--------------------------------------PhysicalOlapScan[region] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q6.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q6.out new file mode 100644 index 0000000000..7976f47c6b --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q6.out @@ -0,0 +1,10 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--hashAgg[GLOBAL] +----PhysicalDistribute +------hashAgg[LOCAL] +--------PhysicalProject +----------filter((lineitem.l_discount <= 0.07) and (lineitem.l_discount >= 0.05) and (lineitem.l_quantity < 24.00) and (lineitem.l_shipdate < '1995-01-01') and (lineitem.l_shipdate >= '1994-01-01')) +------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q7.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q7.out new file mode 100644 index 0000000000..4bfde7a8ef --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q7.out @@ -0,0 +1,39 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=((((n1.n_name = 'FRANCE') AND (n2.n_name = 'GERMANY')) OR ((n1.n_name = 'GERMANY') AND (n2.n_name = 'FRANCE')))) build RFs:RF4 o_orderkey->[l_orderkey] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[l_suppkey] +----------------------PhysicalProject +------------------------filter((lineitem.l_shipdate <= '1996-12-31') and (lineitem.l_shipdate >= '1995-01-01')) +--------------------------PhysicalOlapScan[lineitem] apply RFs: RF3 RF4 +----------------------PhysicalDistribute +------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = n1.n_nationkey)) otherCondition=() build RFs:RF2 n_nationkey->[s_nationkey] +--------------------------PhysicalProject +----------------------------PhysicalOlapScan[supplier] apply RFs: RF2 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------filter(((n1.n_name = 'FRANCE') OR (n1.n_name = 'GERMANY'))) +--------------------------------PhysicalOlapScan[nation] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF1 c_custkey->[o_custkey] +------------------------PhysicalDistribute +--------------------------PhysicalProject +----------------------------PhysicalOlapScan[orders] apply RFs: RF1 +------------------------PhysicalDistribute +--------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = n2.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[c_nationkey] +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[customer] apply RFs: RF0 +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------filter(((n2.n_name = 'GERMANY') OR (n2.n_name = 'FRANCE'))) +----------------------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q8.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q8.out new file mode 100644 index 0000000000..99499226bd --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q8.out @@ -0,0 +1,51 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashAgg[GLOBAL] +------------PhysicalDistribute +--------------hashAgg[LOCAL] +----------------PhysicalProject +------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = n2.n_nationkey)) otherCondition=() +--------------------PhysicalProject +----------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF5 l_suppkey->[s_suppkey] +------------------------PhysicalProject +--------------------------PhysicalOlapScan[supplier] apply RFs: RF5 +------------------------PhysicalDistribute +--------------------------PhysicalProject +----------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_custkey = customer.c_custkey)) otherCondition=() build RFs:RF4 c_custkey->[o_custkey] +------------------------------PhysicalDistribute +--------------------------------PhysicalProject +----------------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF3 l_orderkey->[o_orderkey] +------------------------------------PhysicalProject +--------------------------------------filter((orders.o_orderdate <= '1996-12-31') and (orders.o_orderdate >= '1995-01-01')) +----------------------------------------PhysicalOlapScan[orders] apply RFs: RF3 RF4 +------------------------------------PhysicalProject +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF2 p_partkey->[l_partkey] +----------------------------------------PhysicalProject +------------------------------------------PhysicalOlapScan[lineitem] apply RFs: RF2 +----------------------------------------PhysicalDistribute +------------------------------------------PhysicalProject +--------------------------------------------filter((part.p_type = 'ECONOMY ANODIZED STEEL')) +----------------------------------------------PhysicalOlapScan[part] +------------------------------PhysicalDistribute +--------------------------------PhysicalProject +----------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = n1.n_nationkey)) otherCondition=() build RFs:RF1 n_nationkey->[c_nationkey] +------------------------------------PhysicalProject +--------------------------------------PhysicalOlapScan[customer] apply RFs: RF1 +------------------------------------PhysicalDistribute +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((n1.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF0 r_regionkey->[n_regionkey] +----------------------------------------PhysicalDistribute +------------------------------------------PhysicalProject +--------------------------------------------PhysicalOlapScan[nation] apply RFs: RF0 +----------------------------------------PhysicalDistribute +------------------------------------------PhysicalProject +--------------------------------------------filter((region.r_name = 'AMERICA')) +----------------------------------------------PhysicalOlapScan[region] +--------------------PhysicalDistribute +----------------------PhysicalProject +------------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q9.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q9.out new file mode 100644 index 0000000000..9934b094f9 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q9.out @@ -0,0 +1,38 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_partkey = lineitem.l_partkey) and (partsupp.ps_suppkey = lineitem.l_suppkey)) otherCondition=() +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() +----------------------PhysicalDistribute +------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF2 l_orderkey->[o_orderkey] +--------------------------PhysicalProject +----------------------------PhysicalOlapScan[orders] apply RFs: RF2 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF1 p_partkey->[l_partkey] +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------filter((p_name like '%green%')) +--------------------------------------PhysicalOlapScan[part] +----------------------PhysicalDistribute +------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() +--------------------------PhysicalProject +----------------------------PhysicalOlapScan[supplier] +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[nation] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------PhysicalOlapScan[partsupp] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q10.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q10.out index 153916d635..3f3c7d9b23 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q10.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q10.out @@ -8,16 +8,16 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF2 o_orderkey->[l_orderkey] ------------------PhysicalProject --------------------filter((lineitem.l_returnflag = 'R')) -----------------------PhysicalOlapScan[lineitem] +----------------------PhysicalOlapScan[lineitem] apply RFs: RF2 ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = nation.n_nationkey))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF1 n_nationkey->[c_nationkey] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 o_custkey->[c_custkey] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[customer] +----------------------------PhysicalOlapScan[customer] apply RFs: RF0 RF1 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter((orders.o_orderdate < '1994-01-01') and (orders.o_orderdate >= '1993-10-01')) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q11.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q11.out index 0e99ca11fc..405d1c1661 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q11.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q11.out @@ -8,13 +8,13 @@ PhysicalResultSink ----------NestedLoopJoin[INNER_JOIN](cast(value as DOUBLE) > cast((sum((ps_supplycost * cast(ps_availqty as DECIMALV3(10, 0)))) * 0.000002) as DOUBLE)) ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[ps_suppkey] ------------------PhysicalProject ---------------------PhysicalOlapScan[partsupp] +--------------------PhysicalOlapScan[partsupp] apply RFs: RF3 ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF2 n_nationkey->[s_nationkey] ----------------------PhysicalProject -------------------------PhysicalOlapScan[supplier] +------------------------PhysicalOlapScan[supplier] apply RFs: RF2 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter((nation.n_name = 'GERMANY')) @@ -25,13 +25,13 @@ PhysicalResultSink ------------------PhysicalDistribute --------------------hashAgg[LOCAL] ----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[ps_suppkey] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[partsupp] +----------------------------PhysicalOlapScan[partsupp] apply RFs: RF1 --------------------------PhysicalDistribute -----------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[s_nationkey] ------------------------------PhysicalProject ---------------------------------PhysicalOlapScan[supplier] +--------------------------------PhysicalOlapScan[supplier] apply RFs: RF0 ------------------------------PhysicalDistribute --------------------------------PhysicalProject ----------------------------------filter((nation.n_name = 'GERMANY')) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q12.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q12.out index 7b39d270bd..c5e8f9cd43 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q12.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q12.out @@ -8,9 +8,9 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 l_orderkey->[o_orderkey] ------------------PhysicalProject ---------------------PhysicalOlapScan[orders] +--------------------PhysicalOlapScan[orders] apply RFs: RF0 ------------------PhysicalProject --------------------filter((lineitem.l_commitdate < lineitem.l_receiptdate) and (lineitem.l_receiptdate < '1995-01-01') and (lineitem.l_receiptdate >= '1994-01-01') and (lineitem.l_shipdate < lineitem.l_commitdate) and l_shipmode IN ('MAIL', 'SHIP')) ----------------------PhysicalOlapScan[lineitem] diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q13.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q13.out index 3685fbf902..68920e2318 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q13.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q13.out @@ -10,11 +10,11 @@ PhysicalResultSink --------------PhysicalProject ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey))otherCondition=() +--------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------filter(( not (o_comment like '%special%requests%'))) -----------------------------PhysicalOlapScan[orders] +----------------------------PhysicalOlapScan[orders] apply RFs: RF0 ----------------------PhysicalDistribute ------------------------PhysicalProject --------------------------PhysicalOlapScan[customer] diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q14.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q14.out index 640f926730..0d44b05831 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q14.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q14.out @@ -6,9 +6,9 @@ PhysicalResultSink ------PhysicalDistribute --------hashAgg[LOCAL] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = part.p_partkey))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = part.p_partkey)) otherCondition=() build RFs:RF0 l_partkey->[p_partkey] --------------PhysicalProject -----------------PhysicalOlapScan[part] +----------------PhysicalOlapScan[part] apply RFs: RF0 --------------PhysicalDistribute ----------------PhysicalProject ------------------filter((lineitem.l_shipdate < '1995-10-01') and (lineitem.l_shipdate >= '1995-09-01')) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q15.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q15.out index b6758c1412..f83be70876 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q15.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q15.out @@ -5,11 +5,11 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalQuickSort[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = revenue0.supplier_no))otherCondition=() +----------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = revenue0.supplier_no)) otherCondition=() build RFs:RF0 supplier_no->[s_suppkey] ------------PhysicalProject ---------------PhysicalOlapScan[supplier] +--------------PhysicalOlapScan[supplier] apply RFs: RF0 ------------PhysicalDistribute ---------------hashJoin[INNER_JOIN] hashCondition=((revenue0.total_revenue = max(total_revenue)))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((revenue0.total_revenue = max(total_revenue))) otherCondition=() ----------------PhysicalProject ------------------hashAgg[GLOBAL] --------------------PhysicalDistribute diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q16.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q16.out index 0e52800824..3a186ed911 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q16.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q16.out @@ -8,11 +8,11 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey))otherCondition=() +----------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() ------------------PhysicalDistribute ---------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey)) otherCondition=() build RFs:RF0 p_partkey->[ps_partkey] ----------------------PhysicalProject -------------------------PhysicalOlapScan[partsupp] +------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 ----------------------PhysicalProject ------------------------filter(( not (p_brand = 'Brand#45')) and ( not (p_type like 'MEDIUM POLISHED%')) and p_size IN (14, 19, 23, 3, 36, 45, 49, 9)) --------------------------PhysicalOlapScan[part] diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q17.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q17.out index bc710fc2b9..02b486eee9 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q17.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q17.out @@ -11,9 +11,9 @@ PhysicalResultSink ----------------PhysicalQuickSort[LOCAL_SORT] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF0 p_partkey->[l_partkey] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[lineitem] +--------------------------PhysicalOlapScan[lineitem] apply RFs: RF0 ------------------------PhysicalDistribute --------------------------PhysicalProject ----------------------------filter((part.p_brand = 'Brand#23') and (part.p_container = 'MED BOX')) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q18.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q18.out index 6ce8d16c19..5e3963df20 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q18.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q18.out @@ -6,18 +6,18 @@ PhysicalResultSink ------PhysicalTopN[LOCAL_SORT] --------hashAgg[LOCAL] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF2 o_orderkey->[l_orderkey] --------------PhysicalProject -----------------PhysicalOlapScan[lineitem] +----------------PhysicalOlapScan[lineitem] apply RFs: RF2 --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF1 o_custkey->[c_custkey] --------------------PhysicalProject -----------------------PhysicalOlapScan[customer] +----------------------PhysicalOlapScan[customer] apply RFs: RF1 --------------------PhysicalDistribute -----------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey))otherCondition=() +----------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 l_orderkey->[o_orderkey] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[orders] +--------------------------PhysicalOlapScan[orders] apply RFs: RF0 ------------------------PhysicalProject --------------------------filter((sum(l_quantity) > 300.00)) ----------------------------hashAgg[LOCAL] diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out index 68b8bf4286..4ad887fd52 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out @@ -5,10 +5,10 @@ PhysicalResultSink ----PhysicalDistribute ------hashAgg[LOCAL] --------PhysicalProject -----------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey))otherCondition=(((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND ((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND (part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10))) OR ((((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) AND (part.p_size <= 15)))) +----------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=(((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND ((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND (part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10))) OR ((((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) AND (part.p_size <= 15)))) build RFs:RF0 p_partkey->[l_partkey] ------------PhysicalProject --------------filter(((((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00)) OR ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) OR ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) and (lineitem.l_shipinstruct = 'DELIVER IN PERSON') and l_shipmode IN ('AIR REG', 'AIR')) -----------------PhysicalOlapScan[lineitem] +----------------PhysicalOlapScan[lineitem] apply RFs: RF0 ------------PhysicalDistribute --------------PhysicalProject ----------------filter((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND (part.p_size <= 5)) OR (((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND (part.p_size <= 10))) OR (((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND (part.p_size <= 15))) and (part.p_size >= 1)) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q2.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q2.out index ff12de3850..9915ea40a5 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q2.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q2.out @@ -10,24 +10,24 @@ PhysicalResultSink --------------PhysicalQuickSort[LOCAL_SORT] ----------------PhysicalDistribute ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = partsupp.ps_suppkey))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = partsupp.ps_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[ps_suppkey] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey)) otherCondition=() build RFs:RF2 p_partkey->[ps_partkey] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[partsupp] +------------------------------PhysicalOlapScan[partsupp] apply RFs: RF2 RF3 ----------------------------PhysicalProject ------------------------------filter((p_type like '%BRASS') and (part.p_size = 15)) --------------------------------PhysicalOlapScan[part] ----------------------PhysicalDistribute ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey))otherCondition=() -----------------------------PhysicalOlapScan[supplier] +--------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF1 n_nationkey->[s_nationkey] +----------------------------PhysicalOlapScan[supplier] apply RFs: RF1 ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF0 r_regionkey->[n_regionkey] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[nation] +------------------------------------PhysicalOlapScan[nation] apply RFs: RF0 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((region.r_name = 'EUROPE')) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q20-rewrite.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q20-rewrite.out index dbc892135b..99204372ce 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q20-rewrite.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q20-rewrite.out @@ -5,28 +5,28 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalQuickSort[LOCAL_SORT] --------PhysicalProject -----------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((supplier.s_suppkey = t3.ps_suppkey))otherCondition=() +----------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((supplier.s_suppkey = t3.ps_suppkey)) otherCondition=() build RFs:RF4 s_suppkey->[ps_suppkey] ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((t2.l_partkey = t1.ps_partkey) and (t2.l_suppkey = t1.ps_suppkey))otherCondition=((cast(ps_availqty as DECIMALV3(38, 3)) > t2.l_q)) +----------------hashJoin[INNER_JOIN] hashCondition=((t2.l_partkey = t1.ps_partkey) and (t2.l_suppkey = t1.ps_suppkey)) otherCondition=((cast(ps_availqty as DECIMALV3(38, 3)) > t2.l_q)) build RFs:RF2 ps_partkey->[l_partkey];RF3 ps_suppkey->[l_suppkey] ------------------PhysicalProject --------------------hashAgg[GLOBAL] ----------------------PhysicalDistribute ------------------------hashAgg[LOCAL] --------------------------PhysicalProject ----------------------------filter((lineitem.l_shipdate < '1995-01-01') and (lineitem.l_shipdate >= '1994-01-01')) -------------------------------PhysicalOlapScan[lineitem] +------------------------------PhysicalOlapScan[lineitem] apply RFs: RF2 RF3 ------------------PhysicalDistribute ---------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((partsupp.ps_partkey = part.p_partkey))otherCondition=() +--------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((partsupp.ps_partkey = part.p_partkey)) otherCondition=() build RFs:RF1 p_partkey->[ps_partkey] ----------------------PhysicalProject -------------------------PhysicalOlapScan[partsupp] +------------------------PhysicalOlapScan[partsupp] apply RFs: RF1 RF4 ----------------------PhysicalProject ------------------------filter((p_name like 'forest%')) --------------------------PhysicalOlapScan[part] ------------PhysicalDistribute ---------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[s_nationkey] ----------------PhysicalProject -------------------PhysicalOlapScan[supplier] +------------------PhysicalOlapScan[supplier] apply RFs: RF0 ----------------PhysicalDistribute ------------------PhysicalProject --------------------filter((nation.n_name = 'CANADA')) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q20.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q20.out index 8e647eb965..5a79903bb8 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q20.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q20.out @@ -5,27 +5,27 @@ PhysicalResultSink ----PhysicalDistribute ------PhysicalQuickSort[LOCAL_SORT] --------PhysicalProject -----------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((supplier.s_suppkey = partsupp.ps_suppkey))otherCondition=() +----------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((supplier.s_suppkey = partsupp.ps_suppkey)) otherCondition=() build RFs:RF4 s_suppkey->[ps_suppkey] ------------PhysicalDistribute --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = partsupp.ps_partkey) and (lineitem.l_suppkey = partsupp.ps_suppkey))otherCondition=((cast(ps_availqty as DECIMALV3(38, 3)) > (0.5 * sum(l_quantity)))) +----------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = partsupp.ps_partkey) and (lineitem.l_suppkey = partsupp.ps_suppkey)) otherCondition=((cast(ps_availqty as DECIMALV3(38, 3)) > (0.5 * sum(l_quantity)))) build RFs:RF2 ps_partkey->[l_partkey];RF3 ps_suppkey->[l_suppkey] ------------------hashAgg[GLOBAL] --------------------PhysicalDistribute ----------------------hashAgg[LOCAL] ------------------------PhysicalProject --------------------------filter((lineitem.l_shipdate < '1995-01-01') and (lineitem.l_shipdate >= '1994-01-01')) -----------------------------PhysicalOlapScan[lineitem] +----------------------------PhysicalOlapScan[lineitem] apply RFs: RF2 RF3 ------------------PhysicalDistribute ---------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((partsupp.ps_partkey = part.p_partkey))otherCondition=() +--------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((partsupp.ps_partkey = part.p_partkey)) otherCondition=() build RFs:RF1 p_partkey->[ps_partkey] ----------------------PhysicalProject -------------------------PhysicalOlapScan[partsupp] +------------------------PhysicalOlapScan[partsupp] apply RFs: RF1 RF4 ----------------------PhysicalProject ------------------------filter((p_name like 'forest%')) --------------------------PhysicalOlapScan[part] ------------PhysicalDistribute ---------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey))otherCondition=() +--------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[s_nationkey] ----------------PhysicalProject -------------------PhysicalOlapScan[supplier] +------------------PhysicalOlapScan[supplier] apply RFs: RF0 ----------------PhysicalDistribute ------------------PhysicalProject --------------------filter((nation.n_name = 'CANADA')) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q21.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q21.out index 1282fff969..3fecd7bad5 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q21.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q21.out @@ -8,25 +8,25 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((l2.l_orderkey = l1.l_orderkey))otherCondition=(( not (l_suppkey = l_suppkey))) +----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((l2.l_orderkey = l1.l_orderkey)) otherCondition=(( not (l_suppkey = l_suppkey))) build RFs:RF4 l_orderkey->[l_orderkey] ------------------PhysicalProject ---------------------PhysicalOlapScan[lineitem] -------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = l1.l_orderkey))otherCondition=() +--------------------PhysicalOlapScan[lineitem] apply RFs: RF4 +------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = l1.l_orderkey)) otherCondition=() build RFs:RF3 l_orderkey->[o_orderkey] --------------------PhysicalProject ----------------------filter((orders.o_orderstatus = 'F')) -------------------------PhysicalOlapScan[orders] ---------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((l3.l_orderkey = l1.l_orderkey))otherCondition=(( not (l_suppkey = l_suppkey))) +------------------------PhysicalOlapScan[orders] apply RFs: RF3 +--------------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((l3.l_orderkey = l1.l_orderkey)) otherCondition=(( not (l_suppkey = l_suppkey))) build RFs:RF2 l_orderkey->[l_orderkey] ----------------------PhysicalProject ------------------------filter((l3.l_receiptdate > l3.l_commitdate)) ---------------------------PhysicalOlapScan[lineitem] -----------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = l1.l_suppkey))otherCondition=() +--------------------------PhysicalOlapScan[lineitem] apply RFs: RF2 +----------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = l1.l_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[l_suppkey] ------------------------PhysicalProject --------------------------filter((l1.l_receiptdate > l1.l_commitdate)) -----------------------------PhysicalOlapScan[lineitem] +----------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[s_nationkey] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[supplier] +------------------------------PhysicalOlapScan[supplier] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter((nation.n_name = 'SAUDI ARABIA')) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q22.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q22.out index e3bf696ac3..22caa65035 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q22.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q22.out @@ -8,10 +8,10 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((orders.o_custkey = customer.c_custkey))otherCondition=() +----------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((orders.o_custkey = customer.c_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------PhysicalOlapScan[orders] +----------------------PhysicalOlapScan[orders] apply RFs: RF0 ------------------PhysicalDistribute --------------------NestedLoopJoin[INNER_JOIN](cast(c_acctbal as DECIMALV3(38, 4)) > avg(cast(c_acctbal as DECIMALV3(17, 4)))) ----------------------PhysicalProject diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q3.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q3.out index fe0ed0d242..b772e8ff62 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q3.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q3.out @@ -6,17 +6,17 @@ PhysicalResultSink ------PhysicalTopN[LOCAL_SORT] --------hashAgg[LOCAL] ----------PhysicalProject -------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey))otherCondition=() +------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF1 o_orderkey->[l_orderkey] --------------PhysicalProject ----------------filter((lineitem.l_shipdate > '1995-03-15')) -------------------PhysicalOlapScan[lineitem] +------------------PhysicalOlapScan[lineitem] apply RFs: RF1 --------------PhysicalDistribute ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((orders.o_orderdate < '1995-03-15')) ---------------------------PhysicalOlapScan[orders] +--------------------------PhysicalOlapScan[orders] apply RFs: RF0 --------------------PhysicalDistribute ----------------------PhysicalProject ------------------------filter((customer.c_mktsegment = 'BUILDING')) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q4.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q4.out index d83a9043bd..551ae531e9 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q4.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q4.out @@ -8,10 +8,10 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey))otherCondition=() +----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF0 o_orderkey->[l_orderkey] ------------------PhysicalProject --------------------filter((lineitem.l_commitdate < lineitem.l_receiptdate)) -----------------------PhysicalOlapScan[lineitem] +----------------------PhysicalOlapScan[lineitem] apply RFs: RF0 ------------------PhysicalProject --------------------filter((orders.o_orderdate < '1993-10-01') and (orders.o_orderdate >= '1993-07-01')) ----------------------PhysicalOlapScan[orders] diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q5.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q5.out index 7ea70e069c..8575460527 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q5.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q5.out @@ -8,26 +8,26 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey) and (customer.c_nationkey = supplier.s_nationkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey) and (customer.c_nationkey = supplier.s_nationkey)) otherCondition=() build RFs:RF4 c_nationkey->[s_nationkey];RF5 c_custkey->[o_custkey] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_suppkey = supplier.s_suppkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[l_suppkey] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF2 o_orderkey->[l_orderkey] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[lineitem] +------------------------------PhysicalOlapScan[lineitem] apply RFs: RF2 RF3 ----------------------------PhysicalProject ------------------------------filter((orders.o_orderdate < '1995-01-01') and (orders.o_orderdate >= '1994-01-01')) ---------------------------------PhysicalOlapScan[orders] +--------------------------------PhysicalOlapScan[orders] apply RFs: RF5 ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF1 n_nationkey->[s_nationkey] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[supplier] +------------------------------PhysicalOlapScan[supplier] apply RFs: RF1 RF4 ----------------------------PhysicalDistribute -------------------------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF0 r_regionkey->[n_regionkey] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[nation] +------------------------------------PhysicalOlapScan[nation] apply RFs: RF0 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((region.r_name = 'ASIA')) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q7.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q7.out index 274bdb4b00..4bfde7a8ef 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q7.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q7.out @@ -8,30 +8,30 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey))otherCondition=((((n1.n_name = 'FRANCE') AND (n2.n_name = 'GERMANY')) OR ((n1.n_name = 'GERMANY') AND (n2.n_name = 'FRANCE')))) +----------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=((((n1.n_name = 'FRANCE') AND (n2.n_name = 'GERMANY')) OR ((n1.n_name = 'GERMANY') AND (n2.n_name = 'FRANCE')))) build RFs:RF4 o_orderkey->[l_orderkey] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[l_suppkey] ----------------------PhysicalProject ------------------------filter((lineitem.l_shipdate <= '1996-12-31') and (lineitem.l_shipdate >= '1995-01-01')) ---------------------------PhysicalOlapScan[lineitem] +--------------------------PhysicalOlapScan[lineitem] apply RFs: RF3 RF4 ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = n1.n_nationkey))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = n1.n_nationkey)) otherCondition=() build RFs:RF2 n_nationkey->[s_nationkey] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[supplier] +----------------------------PhysicalOlapScan[supplier] apply RFs: RF2 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------filter(((n1.n_name = 'FRANCE') OR (n1.n_name = 'GERMANY'))) --------------------------------PhysicalOlapScan[nation] ------------------PhysicalDistribute --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF1 c_custkey->[o_custkey] ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------PhysicalOlapScan[orders] +----------------------------PhysicalOlapScan[orders] apply RFs: RF1 ------------------------PhysicalDistribute ---------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = n2.n_nationkey))otherCondition=() +--------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = n2.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[c_nationkey] ----------------------------PhysicalProject -------------------------------PhysicalOlapScan[customer] +------------------------------PhysicalOlapScan[customer] apply RFs: RF0 ----------------------------PhysicalDistribute ------------------------------PhysicalProject --------------------------------filter(((n2.n_name = 'GERMANY') OR (n2.n_name = 'FRANCE'))) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q8.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q8.out index 3f093e8b15..0ad655416d 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q8.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q8.out @@ -9,38 +9,38 @@ PhysicalResultSink ------------PhysicalDistribute --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = n2.n_nationkey))otherCondition=() +------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = n2.n_nationkey)) otherCondition=() build RFs:RF6 n_nationkey->[s_nationkey] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey))otherCondition=() +----------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF5 l_suppkey->[s_suppkey] ------------------------PhysicalProject ---------------------------PhysicalOlapScan[supplier] +--------------------------PhysicalOlapScan[supplier] apply RFs: RF5 RF6 ------------------------PhysicalDistribute --------------------------PhysicalProject -----------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_custkey = customer.c_custkey))otherCondition=() +----------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_custkey = customer.c_custkey)) otherCondition=() build RFs:RF4 c_custkey->[o_custkey] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF3 l_orderkey->[o_orderkey] ------------------------------------PhysicalProject --------------------------------------filter((orders.o_orderdate <= '1996-12-31') and (orders.o_orderdate >= '1995-01-01')) -----------------------------------------PhysicalOlapScan[orders] +----------------------------------------PhysicalOlapScan[orders] apply RFs: RF3 RF4 ------------------------------------PhysicalProject ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF2 p_partkey->[l_partkey] ----------------------------------------PhysicalProject -------------------------------------------PhysicalOlapScan[lineitem] +------------------------------------------PhysicalOlapScan[lineitem] apply RFs: RF2 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((part.p_type = 'ECONOMY ANODIZED STEEL')) ----------------------------------------------PhysicalOlapScan[part] ------------------------------PhysicalDistribute --------------------------------PhysicalProject -----------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = n1.n_nationkey))otherCondition=() +----------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = n1.n_nationkey)) otherCondition=() build RFs:RF1 n_nationkey->[c_nationkey] ------------------------------------PhysicalProject ---------------------------------------PhysicalOlapScan[customer] +--------------------------------------PhysicalOlapScan[customer] apply RFs: RF1 ------------------------------------PhysicalDistribute ---------------------------------------hashJoin[INNER_JOIN] hashCondition=((n1.n_regionkey = region.r_regionkey))otherCondition=() +--------------------------------------hashJoin[INNER_JOIN] hashCondition=((n1.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF0 r_regionkey->[n_regionkey] ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject ---------------------------------------------PhysicalOlapScan[nation] +--------------------------------------------PhysicalOlapScan[nation] apply RFs: RF0 ----------------------------------------PhysicalDistribute ------------------------------------------PhysicalProject --------------------------------------------filter((region.r_name = 'AMERICA')) diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q9.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q9.out index 87e49bb6d3..9c72427869 100644 --- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q9.out +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q9.out @@ -8,27 +8,27 @@ PhysicalResultSink ----------PhysicalDistribute ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_partkey = lineitem.l_partkey) and (partsupp.ps_suppkey = lineitem.l_suppkey))otherCondition=() +----------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_partkey = lineitem.l_partkey) and (partsupp.ps_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF4 ps_suppkey->[l_suppkey];RF5 ps_partkey->[l_partkey] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey))otherCondition=() +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[l_suppkey] ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF2 l_orderkey->[o_orderkey] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[orders] +----------------------------PhysicalOlapScan[orders] apply RFs: RF2 --------------------------PhysicalDistribute ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey))otherCondition=() +------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF1 p_partkey->[l_partkey] --------------------------------PhysicalDistribute ----------------------------------PhysicalProject -------------------------------------PhysicalOlapScan[lineitem] +------------------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 RF3 RF4 RF5 --------------------------------PhysicalDistribute ----------------------------------PhysicalProject ------------------------------------filter((p_name like '%green%')) --------------------------------------PhysicalOlapScan[part] ----------------------PhysicalDistribute -------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey))otherCondition=() +------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF0 n_nationkey->[s_nationkey] --------------------------PhysicalProject -----------------------------PhysicalOlapScan[supplier] +----------------------------PhysicalOlapScan[supplier] apply RFs: RF0 --------------------------PhysicalDistribute ----------------------------PhysicalProject ------------------------------PhysicalOlapScan[nation] diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q1.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q1.out new file mode 100644 index 0000000000..3eb68a3c45 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q1.out @@ -0,0 +1,13 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------filter((lineitem.l_shipdate <= '1998-09-02')) +------------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q10.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q10.out new file mode 100644 index 0000000000..c1e2b1a917 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q10.out @@ -0,0 +1,30 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF2 n_nationkey->[c_nationkey] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF1 o_orderkey->[l_orderkey] +----------------------PhysicalProject +------------------------filter((lineitem.l_returnflag = 'R')) +--------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------filter((orders.o_orderdate < '1994-01-01') and (orders.o_orderdate >= '1993-10-01')) +----------------------------------PhysicalOlapScan[orders] apply RFs: RF0 +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[customer] apply RFs: RF2 +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q11.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q11.out new file mode 100644 index 0000000000..b596d6c5d7 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q11.out @@ -0,0 +1,45 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------NestedLoopJoin[INNER_JOIN](cast(value as DOUBLE) > cast((sum((ps_supplycost * cast(ps_availqty as DECIMALV3(10, 0)))) * 0.000002) as DOUBLE)) +------------hashAgg[GLOBAL] +--------------PhysicalDistribute +----------------hashAgg[LOCAL] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF3 n_nationkey->[s_nationkey] +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF2 s_suppkey->[ps_suppkey] +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[partsupp] apply RFs: RF2 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[supplier] apply RFs: RF3 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter((nation.n_name = 'GERMANY')) +----------------------------PhysicalOlapScan[nation] +------------PhysicalDistribute +--------------PhysicalProject +----------------hashAgg[GLOBAL] +------------------PhysicalDistribute +--------------------hashAgg[LOCAL] +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF1 n_nationkey->[s_nationkey] +--------------------------PhysicalProject +----------------------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF0 s_suppkey->[ps_suppkey] +------------------------------PhysicalDistribute +--------------------------------PhysicalProject +----------------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 +------------------------------PhysicalDistribute +--------------------------------PhysicalProject +----------------------------------PhysicalOlapScan[supplier] apply RFs: RF1 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------filter((nation.n_name = 'GERMANY')) +--------------------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q12.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q12.out new file mode 100644 index 0000000000..c5e8f9cd43 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q12.out @@ -0,0 +1,17 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 l_orderkey->[o_orderkey] +------------------PhysicalProject +--------------------PhysicalOlapScan[orders] apply RFs: RF0 +------------------PhysicalProject +--------------------filter((lineitem.l_commitdate < lineitem.l_receiptdate) and (lineitem.l_receiptdate < '1995-01-01') and (lineitem.l_receiptdate >= '1994-01-01') and (lineitem.l_shipdate < lineitem.l_commitdate) and l_shipmode IN ('MAIL', 'SHIP')) +----------------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q13.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q13.out new file mode 100644 index 0000000000..68920e2318 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q13.out @@ -0,0 +1,21 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashAgg[LOCAL] +------------------PhysicalProject +--------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter(( not (o_comment like '%special%requests%'))) +----------------------------PhysicalOlapScan[orders] apply RFs: RF0 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q14.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q14.out new file mode 100644 index 0000000000..d0f7b533ef --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q14.out @@ -0,0 +1,17 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalProject +----hashAgg[GLOBAL] +------PhysicalDistribute +--------hashAgg[LOCAL] +----------PhysicalProject +------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = part.p_partkey)) otherCondition=() build RFs:RF0 p_partkey->[l_partkey] +--------------PhysicalDistribute +----------------PhysicalProject +------------------filter((lineitem.l_shipdate < '1995-10-01') and (lineitem.l_shipdate >= '1995-09-01')) +--------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +--------------PhysicalDistribute +----------------PhysicalProject +------------------PhysicalOlapScan[part] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q15.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q15.out new file mode 100644 index 0000000000..6e7748fa40 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q15.out @@ -0,0 +1,31 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = revenue0.supplier_no)) otherCondition=() build RFs:RF0 s_suppkey->[l_suppkey] +------------hashJoin[INNER_JOIN] hashCondition=((revenue0.total_revenue = max(total_revenue))) otherCondition=() +--------------PhysicalProject +----------------hashAgg[GLOBAL] +------------------PhysicalDistribute +--------------------hashAgg[LOCAL] +----------------------PhysicalProject +------------------------filter((lineitem.l_shipdate < '1996-04-01') and (lineitem.l_shipdate >= '1996-01-01')) +--------------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +--------------PhysicalDistribute +----------------hashAgg[GLOBAL] +------------------PhysicalDistribute +--------------------hashAgg[LOCAL] +----------------------PhysicalProject +------------------------hashAgg[GLOBAL] +--------------------------PhysicalDistribute +----------------------------hashAgg[LOCAL] +------------------------------PhysicalProject +--------------------------------filter((lineitem.l_shipdate < '1996-04-01') and (lineitem.l_shipdate >= '1996-01-01')) +----------------------------------PhysicalOlapScan[lineitem] +------------PhysicalDistribute +--------------PhysicalProject +----------------PhysicalOlapScan[supplier] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q16.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q16.out new file mode 100644 index 0000000000..a59b027c42 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q16.out @@ -0,0 +1,25 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey)) otherCondition=() build RFs:RF0 p_partkey->[ps_partkey] +------------------PhysicalDistribute +--------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=() +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter((s_comment like '%Customer%Complaints%')) +----------------------------PhysicalOlapScan[supplier] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------filter(( not (p_brand = 'Brand#45')) and ( not (p_type like 'MEDIUM POLISHED%')) and p_size IN (14, 19, 23, 3, 36, 45, 49, 9)) +------------------------PhysicalOlapScan[part] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q17.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q17.out new file mode 100644 index 0000000000..7ea128caa6 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q17.out @@ -0,0 +1,21 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalProject +----hashAgg[GLOBAL] +------PhysicalDistribute +--------hashAgg[LOCAL] +----------PhysicalProject +------------filter((cast(l_quantity as DECIMALV3(38, 5)) < (0.2 * avg(cast(l_quantity as DECIMALV3(17, 4))) OVER(PARTITION BY p_partkey)))) +--------------PhysicalWindow +----------------PhysicalQuickSort[LOCAL_SORT] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF0 p_partkey->[l_partkey] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter((part.p_brand = 'Brand#23') and (part.p_container = 'MED BOX')) +----------------------------PhysicalOlapScan[part] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q18.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q18.out new file mode 100644 index 0000000000..09edc70a22 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q18.out @@ -0,0 +1,27 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[LOCAL] +----------PhysicalProject +------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF2 o_orderkey->[l_orderkey] +--------------PhysicalProject +----------------PhysicalOlapScan[lineitem] apply RFs: RF2 +--------------PhysicalDistribute +----------------PhysicalProject +------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF1 c_custkey->[o_custkey] +--------------------PhysicalDistribute +----------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 l_orderkey->[o_orderkey] +------------------------PhysicalProject +--------------------------PhysicalOlapScan[orders] apply RFs: RF0 RF1 +------------------------PhysicalProject +--------------------------filter((sum(l_quantity) > 300.00)) +----------------------------hashAgg[LOCAL] +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[lineitem] +--------------------PhysicalDistribute +----------------------PhysicalProject +------------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.out new file mode 100644 index 0000000000..14765ad432 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.out @@ -0,0 +1,17 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--hashAgg[GLOBAL] +----PhysicalDistribute +------hashAgg[LOCAL] +--------PhysicalProject +----------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=(((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND ((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND (part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10))) OR ((((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) AND (part.p_size <= 15)))) build RFs:RF0 p_partkey->[l_partkey] +------------PhysicalDistribute +--------------PhysicalProject +----------------filter(((((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00)) OR ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) OR ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) and (lineitem.l_shipinstruct = 'DELIVER IN PERSON') and l_shipmode IN ('AIR REG', 'AIR')) +------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +------------PhysicalDistribute +--------------PhysicalProject +----------------filter((((((part.p_brand = 'Brand#12') AND p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND (part.p_size <= 5)) OR (((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND (part.p_size <= 10))) OR (((part.p_brand = 'Brand#34') AND p_container IN ('LG BOX', 'LG CASE', 'LG PACK', 'LG PKG')) AND (part.p_size <= 15))) and (part.p_size >= 1)) +------------------PhysicalOlapScan[part] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q2.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q2.out new file mode 100644 index 0000000000..e6b4da4096 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q2.out @@ -0,0 +1,35 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------PhysicalProject +----------filter((partsupp.ps_supplycost = min(ps_supplycost) OVER(PARTITION BY p_partkey))) +------------PhysicalWindow +--------------PhysicalQuickSort[LOCAL_SORT] +----------------PhysicalDistribute +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF3 r_regionkey->[n_regionkey] +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF2 n_nationkey->[s_nationkey] +--------------------------PhysicalProject +----------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = partsupp.ps_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[ps_suppkey] +------------------------------PhysicalDistribute +--------------------------------PhysicalProject +----------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = partsupp.ps_partkey)) otherCondition=() build RFs:RF0 p_partkey->[ps_partkey] +------------------------------------PhysicalProject +--------------------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 RF1 +------------------------------------PhysicalProject +--------------------------------------filter((p_type like '%BRASS') and (part.p_size = 15)) +----------------------------------------PhysicalOlapScan[part] +------------------------------PhysicalDistribute +--------------------------------PhysicalOlapScan[supplier] apply RFs: RF2 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[nation] apply RFs: RF3 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter((region.r_name = 'EUROPE')) +----------------------------PhysicalOlapScan[region] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20-rewrite.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20-rewrite.out new file mode 100644 index 0000000000..d5c55fe60f --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20-rewrite.out @@ -0,0 +1,35 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF4 n_nationkey->[s_nationkey] +------------PhysicalProject +--------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((supplier.s_suppkey = t3.ps_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[ps_suppkey] +----------------PhysicalDistribute +------------------PhysicalProject +--------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((partsupp.ps_partkey = part.p_partkey)) otherCondition=() build RFs:RF2 p_partkey->[ps_partkey] +----------------------hashJoin[INNER_JOIN] hashCondition=((t2.l_partkey = t1.ps_partkey) and (t2.l_suppkey = t1.ps_suppkey)) otherCondition=((cast(ps_availqty as DECIMALV3(38, 3)) > t2.l_q)) build RFs:RF0 l_partkey->[ps_partkey];RF1 l_suppkey->[ps_suppkey] +------------------------PhysicalProject +--------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 RF1 RF2 RF3 +------------------------PhysicalDistribute +--------------------------PhysicalProject +----------------------------hashAgg[GLOBAL] +------------------------------PhysicalDistribute +--------------------------------hashAgg[LOCAL] +----------------------------------PhysicalProject +------------------------------------filter((lineitem.l_shipdate < '1995-01-01') and (lineitem.l_shipdate >= '1994-01-01')) +--------------------------------------PhysicalOlapScan[lineitem] +----------------------PhysicalProject +------------------------filter((p_name like 'forest%')) +--------------------------PhysicalOlapScan[part] +----------------PhysicalDistribute +------------------PhysicalProject +--------------------PhysicalOlapScan[supplier] apply RFs: RF4 +------------PhysicalDistribute +--------------PhysicalProject +----------------filter((nation.n_name = 'CANADA')) +------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20.out new file mode 100644 index 0000000000..bf5c2c2286 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20.out @@ -0,0 +1,34 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF4 n_nationkey->[s_nationkey] +------------PhysicalProject +--------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((supplier.s_suppkey = partsupp.ps_suppkey)) otherCondition=() build RFs:RF3 s_suppkey->[ps_suppkey] +----------------PhysicalDistribute +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_partkey = partsupp.ps_partkey) and (lineitem.l_suppkey = partsupp.ps_suppkey)) otherCondition=((cast(ps_availqty as DECIMALV3(38, 3)) > (0.5 * sum(l_quantity)))) build RFs:RF1 l_partkey->[ps_partkey];RF2 l_suppkey->[ps_suppkey] +----------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((partsupp.ps_partkey = part.p_partkey)) otherCondition=() build RFs:RF0 p_partkey->[ps_partkey] +------------------------PhysicalProject +--------------------------PhysicalOlapScan[partsupp] apply RFs: RF0 RF1 RF2 RF3 +------------------------PhysicalProject +--------------------------filter((p_name like 'forest%')) +----------------------------PhysicalOlapScan[part] +----------------------PhysicalDistribute +------------------------hashAgg[GLOBAL] +--------------------------PhysicalDistribute +----------------------------hashAgg[LOCAL] +------------------------------PhysicalProject +--------------------------------filter((lineitem.l_shipdate < '1995-01-01') and (lineitem.l_shipdate >= '1994-01-01')) +----------------------------------PhysicalOlapScan[lineitem] +----------------PhysicalDistribute +------------------PhysicalProject +--------------------PhysicalOlapScan[supplier] apply RFs: RF4 +------------PhysicalDistribute +--------------PhysicalProject +----------------filter((nation.n_name = 'CANADA')) +------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q21.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q21.out new file mode 100644 index 0000000000..fba23d229a --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q21.out @@ -0,0 +1,36 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF3 n_nationkey->[s_nationkey] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = l1.l_suppkey)) otherCondition=() build RFs:RF2 s_suppkey->[l_suppkey] +----------------------PhysicalDistribute +------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = l1.l_orderkey)) otherCondition=() build RFs:RF1 o_orderkey->[l_orderkey] +--------------------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((l3.l_orderkey = l1.l_orderkey)) otherCondition=(( not (l_suppkey = l_suppkey))) +----------------------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((l2.l_orderkey = l1.l_orderkey)) otherCondition=(( not (l_suppkey = l_suppkey))) build RFs:RF0 l_orderkey->[l_orderkey] +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +------------------------------PhysicalProject +--------------------------------filter((l1.l_receiptdate > l1.l_commitdate)) +----------------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 RF2 +----------------------------PhysicalProject +------------------------------filter((l3.l_receiptdate > l3.l_commitdate)) +--------------------------------PhysicalOlapScan[lineitem] +--------------------------PhysicalProject +----------------------------filter((orders.o_orderstatus = 'F')) +------------------------------PhysicalOlapScan[orders] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[supplier] apply RFs: RF3 +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------filter((nation.n_name = 'SAUDI ARABIA')) +------------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q22.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q22.out new file mode 100644 index 0000000000..22caa65035 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q22.out @@ -0,0 +1,27 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[RIGHT_ANTI_JOIN] hashCondition=((orders.o_custkey = customer.c_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------PhysicalOlapScan[orders] apply RFs: RF0 +------------------PhysicalDistribute +--------------------NestedLoopJoin[INNER_JOIN](cast(c_acctbal as DECIMALV3(38, 4)) > avg(cast(c_acctbal as DECIMALV3(17, 4)))) +----------------------PhysicalProject +------------------------filter(substring(c_phone, 1, 2) IN ('13', '17', '18', '23', '29', '30', '31')) +--------------------------PhysicalOlapScan[customer] +----------------------PhysicalDistribute +------------------------hashAgg[GLOBAL] +--------------------------PhysicalDistribute +----------------------------hashAgg[LOCAL] +------------------------------PhysicalProject +--------------------------------filter((customer.c_acctbal > 0.00) and substring(c_phone, 1, 2) IN ('13', '17', '18', '23', '29', '30', '31')) +----------------------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q3.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q3.out new file mode 100644 index 0000000000..b772e8ff62 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q3.out @@ -0,0 +1,24 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalTopN[MERGE_SORT] +----PhysicalDistribute +------PhysicalTopN[LOCAL_SORT] +--------hashAgg[LOCAL] +----------PhysicalProject +------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF1 o_orderkey->[l_orderkey] +--------------PhysicalProject +----------------filter((lineitem.l_shipdate > '1995-03-15')) +------------------PhysicalOlapScan[lineitem] apply RFs: RF1 +--------------PhysicalDistribute +----------------PhysicalProject +------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] +--------------------PhysicalDistribute +----------------------PhysicalProject +------------------------filter((orders.o_orderdate < '1995-03-15')) +--------------------------PhysicalOlapScan[orders] apply RFs: RF0 +--------------------PhysicalDistribute +----------------------PhysicalProject +------------------------filter((customer.c_mktsegment = 'BUILDING')) +--------------------------PhysicalOlapScan[customer] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q4.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q4.out new file mode 100644 index 0000000000..551ae531e9 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q4.out @@ -0,0 +1,18 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF0 o_orderkey->[l_orderkey] +------------------PhysicalProject +--------------------filter((lineitem.l_commitdate < lineitem.l_receiptdate)) +----------------------PhysicalOlapScan[lineitem] apply RFs: RF0 +------------------PhysicalProject +--------------------filter((orders.o_orderdate < '1993-10-01') and (orders.o_orderdate >= '1993-07-01')) +----------------------PhysicalOlapScan[orders] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q5.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q5.out new file mode 100644 index 0000000000..5a32b8a41f --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q5.out @@ -0,0 +1,41 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((nation.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF5 r_regionkey->[n_regionkey] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF4 n_nationkey->[s_nationkey] +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = supplier.s_nationkey) and (lineitem.l_suppkey = supplier.s_suppkey)) otherCondition=() build RFs:RF2 s_suppkey->[l_suppkey];RF3 s_nationkey->[c_nationkey] +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF1 o_orderkey->[l_orderkey] +--------------------------------PhysicalProject +----------------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 RF2 +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF0 c_custkey->[o_custkey] +--------------------------------------PhysicalDistribute +----------------------------------------PhysicalProject +------------------------------------------filter((orders.o_orderdate < '1995-01-01') and (orders.o_orderdate >= '1994-01-01')) +--------------------------------------------PhysicalOlapScan[orders] apply RFs: RF0 +--------------------------------------PhysicalDistribute +----------------------------------------PhysicalProject +------------------------------------------PhysicalOlapScan[customer] apply RFs: RF3 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[supplier] apply RFs: RF4 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[nation] apply RFs: RF5 +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------filter((region.r_name = 'ASIA')) +------------------------PhysicalOlapScan[region] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q6.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q6.out new file mode 100644 index 0000000000..7976f47c6b --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q6.out @@ -0,0 +1,10 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--hashAgg[GLOBAL] +----PhysicalDistribute +------hashAgg[LOCAL] +--------PhysicalProject +----------filter((lineitem.l_discount <= 0.07) and (lineitem.l_discount >= 0.05) and (lineitem.l_quantity < 24.00) and (lineitem.l_shipdate < '1995-01-01') and (lineitem.l_shipdate >= '1994-01-01')) +------------PhysicalOlapScan[lineitem] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.out new file mode 100644 index 0000000000..0a7754c55f --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.out @@ -0,0 +1,40 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = n2.n_nationkey)) otherCondition=((((n1.n_name = 'FRANCE') AND (n2.n_name = 'GERMANY')) OR ((n1.n_name = 'GERMANY') AND (n2.n_name = 'FRANCE')))) build RFs:RF4 n_nationkey->[c_nationkey] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = n1.n_nationkey)) otherCondition=() build RFs:RF3 n_nationkey->[s_nationkey] +----------------------PhysicalProject +------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_custkey = orders.o_custkey)) otherCondition=() build RFs:RF2 c_custkey->[o_custkey] +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[l_suppkey] +--------------------------------PhysicalDistribute +----------------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 l_orderkey->[o_orderkey] +------------------------------------PhysicalProject +--------------------------------------PhysicalOlapScan[orders] apply RFs: RF0 RF2 +------------------------------------PhysicalProject +--------------------------------------filter((lineitem.l_shipdate <= '1996-12-31') and (lineitem.l_shipdate >= '1995-01-01')) +----------------------------------------PhysicalOlapScan[lineitem] apply RFs: RF1 +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------PhysicalOlapScan[supplier] apply RFs: RF3 +--------------------------PhysicalDistribute +----------------------------PhysicalProject +------------------------------PhysicalOlapScan[customer] apply RFs: RF4 +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------filter(((n1.n_name = 'FRANCE') OR (n1.n_name = 'GERMANY'))) +----------------------------PhysicalOlapScan[nation] +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------filter(((n2.n_name = 'GERMANY') OR (n2.n_name = 'FRANCE'))) +------------------------PhysicalOlapScan[nation] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q8.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q8.out new file mode 100644 index 0000000000..38e277d3ce --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q8.out @@ -0,0 +1,55 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------PhysicalProject +----------hashAgg[GLOBAL] +------------PhysicalDistribute +--------------hashAgg[LOCAL] +----------------PhysicalProject +------------------hashJoin[INNER_JOIN] hashCondition=((n1.n_regionkey = region.r_regionkey)) otherCondition=() build RFs:RF6 r_regionkey->[n_regionkey] +--------------------PhysicalProject +----------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = n2.n_nationkey)) otherCondition=() build RFs:RF5 n_nationkey->[s_nationkey] +------------------------PhysicalProject +--------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_nationkey = n1.n_nationkey)) otherCondition=() build RFs:RF4 n_nationkey->[c_nationkey] +----------------------------PhysicalProject +------------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_custkey = customer.c_custkey)) otherCondition=() build RFs:RF3 c_custkey->[o_custkey] +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------hashJoin[INNER_JOIN] hashCondition=((lineitem.l_orderkey = orders.o_orderkey)) otherCondition=() build RFs:RF2 o_orderkey->[l_orderkey] +--------------------------------------PhysicalDistribute +----------------------------------------PhysicalProject +------------------------------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF1 s_suppkey->[l_suppkey] +--------------------------------------------PhysicalDistribute +----------------------------------------------PhysicalProject +------------------------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF0 p_partkey->[l_partkey] +--------------------------------------------------PhysicalDistribute +----------------------------------------------------PhysicalProject +------------------------------------------------------PhysicalOlapScan[lineitem] apply RFs: RF0 RF1 RF2 +--------------------------------------------------PhysicalDistribute +----------------------------------------------------PhysicalProject +------------------------------------------------------filter((part.p_type = 'ECONOMY ANODIZED STEEL')) +--------------------------------------------------------PhysicalOlapScan[part] +--------------------------------------------PhysicalDistribute +----------------------------------------------PhysicalProject +------------------------------------------------PhysicalOlapScan[supplier] apply RFs: RF5 +--------------------------------------PhysicalDistribute +----------------------------------------PhysicalProject +------------------------------------------filter((orders.o_orderdate <= '1996-12-31') and (orders.o_orderdate >= '1995-01-01')) +--------------------------------------------PhysicalOlapScan[orders] apply RFs: RF3 +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------PhysicalOlapScan[customer] apply RFs: RF4 +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[nation] apply RFs: RF6 +------------------------PhysicalDistribute +--------------------------PhysicalProject +----------------------------PhysicalOlapScan[nation] +--------------------PhysicalDistribute +----------------------PhysicalProject +------------------------filter((region.r_name = 'AMERICA')) +--------------------------PhysicalOlapScan[region] + diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q9.out b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q9.out new file mode 100644 index 0000000000..e85041df97 --- /dev/null +++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q9.out @@ -0,0 +1,38 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select -- +PhysicalResultSink +--PhysicalQuickSort[MERGE_SORT] +----PhysicalDistribute +------PhysicalQuickSort[LOCAL_SORT] +--------hashAgg[GLOBAL] +----------PhysicalDistribute +------------hashAgg[LOCAL] +--------------PhysicalProject +----------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_nationkey = nation.n_nationkey)) otherCondition=() build RFs:RF5 n_nationkey->[s_nationkey] +------------------PhysicalProject +--------------------hashJoin[INNER_JOIN] hashCondition=((supplier.s_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF4 s_suppkey->[l_suppkey] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------hashJoin[INNER_JOIN] hashCondition=((partsupp.ps_partkey = lineitem.l_partkey) and (partsupp.ps_suppkey = lineitem.l_suppkey)) otherCondition=() build RFs:RF2 ps_suppkey->[l_suppkey];RF3 ps_partkey->[l_partkey] +----------------------------PhysicalProject +------------------------------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = lineitem.l_partkey)) otherCondition=() build RFs:RF1 p_partkey->[l_partkey] +--------------------------------PhysicalDistribute +----------------------------------hashJoin[INNER_JOIN] hashCondition=((orders.o_orderkey = lineitem.l_orderkey)) otherCondition=() build RFs:RF0 o_orderkey->[l_orderkey] +------------------------------------PhysicalProject +--------------------------------------PhysicalOlapScan[lineitem] apply RFs: RF0 RF1 RF2 RF3 RF4 +------------------------------------PhysicalProject +--------------------------------------PhysicalOlapScan[orders] +--------------------------------PhysicalDistribute +----------------------------------PhysicalProject +------------------------------------filter((p_name like '%green%')) +--------------------------------------PhysicalOlapScan[part] +----------------------------PhysicalDistribute +------------------------------PhysicalProject +--------------------------------PhysicalOlapScan[partsupp] +----------------------PhysicalDistribute +------------------------PhysicalProject +--------------------------PhysicalOlapScan[supplier] apply RFs: RF5 +------------------PhysicalDistribute +--------------------PhysicalProject +----------------------PhysicalOlapScan[nation] + diff --git a/regression-test/suites/correctness_p0/test_runtimefilter_with_window.groovy b/regression-test/suites/correctness_p0/test_runtimefilter_with_window.groovy index b876ab3de0..ee490f6ad5 100644 --- a/regression-test/suites/correctness_p0/test_runtimefilter_with_window.groovy +++ b/regression-test/suites/correctness_p0/test_runtimefilter_with_window.groovy @@ -18,6 +18,7 @@ suite("test_runtimefilter_with_window") { sql """ set enable_nereids_planner=true""" sql """ set disable_join_reorder=true""" + sql """ set enable_runtime_filter_prune=false""" sql """ DROP TABLE IF EXISTS `test_runtimefilter_with_window_table1` """ sql """ DROP TABLE IF EXISTS `test_runtimefilter_with_window_table2` """ sql """ diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q1.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q1.groovy index c3770a0ee2..a19547f7c3 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q1.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q1.groovy @@ -27,6 +27,7 @@ suite("q1") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q10.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q10.groovy index cb32d84dcc..821b266bdf 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q10.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q10.groovy @@ -31,6 +31,7 @@ suite("q10") { sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q12.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q12.groovy index dea674fbcb..9c6645e8a1 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q12.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q12.groovy @@ -31,6 +31,7 @@ suite("q12") { sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q13.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q13.groovy index 21cef2b8d8..aabab78ef4 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q13.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q13.groovy @@ -28,6 +28,7 @@ suite("q13") { sql 'SET enable_pipeline_engine = true' sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q14.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q14.groovy index c4d4724d94..302a21e0c9 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q14.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q14.groovy @@ -28,6 +28,7 @@ suite("q14") { sql 'SET enable_pipeline_engine = true' sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q16.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q16.groovy index c9eda9f223..569006143e 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q16.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q16.groovy @@ -31,6 +31,7 @@ suite("q16") { sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q19.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q19.groovy index 9fb43f53b4..eb131a07e6 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q19.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q19.groovy @@ -32,6 +32,7 @@ suite("q19") { sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q3.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q3.groovy index 01ba4c19fb..577fcbb571 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q3.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q3.groovy @@ -34,6 +34,7 @@ suite("q3") { sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q4.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q4.groovy index f07588153e..cf7ab67d1e 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q4.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q4.groovy @@ -32,6 +32,7 @@ suite("q4") { sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q5.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q5.groovy index 606e5a951f..7c2e1bf8b4 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q5.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q5.groovy @@ -28,6 +28,7 @@ suite("q5") { sql 'SET enable_pipeline_engine = true' sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q6.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q6.groovy index 09d3c26e0c..47449a0b80 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q6.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q6.groovy @@ -28,6 +28,7 @@ suite("q6") { sql 'SET enable_pipeline_engine = true' sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_hint_tpch_p0/shape/q9.groovy b/regression-test/suites/nereids_hint_tpch_p0/shape/q9.groovy index b5fe1ea953..341674c434 100644 --- a/regression-test/suites/nereids_hint_tpch_p0/shape/q9.groovy +++ b/regression-test/suites/nereids_hint_tpch_p0/shape/q9.groovy @@ -28,6 +28,7 @@ suite("q9") { sql 'SET enable_pipeline_engine = true' sql 'set be_number_for_test=3' +sql "set enable_runtime_filter_prune=false" qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_p0/cte/test_cte_filter_pushdown.groovy b/regression-test/suites/nereids_p0/cte/test_cte_filter_pushdown.groovy index 8f08721f6c..53ae45f7c0 100644 --- a/regression-test/suites/nereids_p0/cte/test_cte_filter_pushdown.groovy +++ b/regression-test/suites/nereids_p0/cte/test_cte_filter_pushdown.groovy @@ -14,11 +14,11 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -suite("test_cte_filter_pushdown)") { +suite("test_cte_filter_pushdown") { sql "SET enable_nereids_planner=true" sql "SET enable_pipeline_engine=true" sql "SET enable_fallback_to_original_planner=false" - + sql "set enable_runtime_filter_prune=false" // CTE filter pushing down with the same filter qt_cte_filter_pushdown_1 """ explain shape plan diff --git a/regression-test/suites/nereids_p0/eliminate_outer_join/eliminate_outer_join.groovy b/regression-test/suites/nereids_p0/eliminate_outer_join/eliminate_outer_join.groovy index 8fca167649..b66f462fac 100644 --- a/regression-test/suites/nereids_p0/eliminate_outer_join/eliminate_outer_join.groovy +++ b/regression-test/suites/nereids_p0/eliminate_outer_join/eliminate_outer_join.groovy @@ -22,6 +22,7 @@ suite("eliminate_outer_join") { sql "set disable_join_reorder=true" sql "set forbid_unknown_col_stats=false" sql "set enable_bucket_shuffle_join=false" + sql "set enable_runtime_filter_prune=false" sql """ set ignore_shape_nodes='PhysicalDistribute, PhysicalProject' """ diff --git a/regression-test/suites/nereids_p0/forbid_unknown_col_stats.groovy b/regression-test/suites/nereids_p0/forbid_unknown_col_stats.groovy new file mode 100644 index 0000000000..43ba30ec30 --- /dev/null +++ b/regression-test/suites/nereids_p0/forbid_unknown_col_stats.groovy @@ -0,0 +1,39 @@ +// 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("forbid_unknown_col_stats") { + String db = context.config.getDbNameByFile(context.file) + sql "use ${db}" + sql "SET enable_nereids_planner=true" + sql "SET enable_fallback_to_original_planner=false" + sql "set forbid_unknown_col_stats=true;" + sql "drop table if exists region" + sql ''' + CREATE TABLE region ( + r_regionkey int NOT NULL, + r_name VARCHAR(25) NOT NULL, + r_comment VARCHAR(152) + )ENGINE=OLAP + unique KEY(`r_regionkey`) + COMMENT "OLAP" + DISTRIBUTED BY HASH(`r_regionkey`) BUCKETS 1 + PROPERTIES ( + "replication_num" = "1" + ); + ''' + +} \ No newline at end of file diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.1.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.1.groovy index 480b7acaa6..fb410b1692 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.1.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.1.groovy @@ -27,6 +27,7 @@ suite("q1.1") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.2.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.2.groovy index 680ef619ae..7f01296bb9 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.2.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.2.groovy @@ -27,6 +27,7 @@ suite("q1.2") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.3.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.3.groovy index f6fd293b59..25dd5704b5 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.3.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q1.3.groovy @@ -27,6 +27,7 @@ suite("q1.3") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.1.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.1.groovy index 6473c38f0e..7c43c6b2e9 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.1.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.1.groovy @@ -27,6 +27,7 @@ suite("q2.1") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.2.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.2.groovy index ffb2d03c38..b9c4f9876e 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.2.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.2.groovy @@ -27,6 +27,7 @@ suite("q2.2") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.3.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.3.groovy index 588459d126..fe916eb4f5 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.3.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q2.3.groovy @@ -27,6 +27,7 @@ suite("q2.3") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.1.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.1.groovy index dd46528eb8..f7b112d1fd 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.1.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.1.groovy @@ -27,6 +27,7 @@ suite("q3.1") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.2.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.2.groovy index c2deaadc3d..0401817d46 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.2.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.2.groovy @@ -27,6 +27,7 @@ suite("q3.2") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.3.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.3.groovy index 31f284dca8..691bac99fc 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.3.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.3.groovy @@ -27,6 +27,7 @@ suite("q3.3") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.4.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.4.groovy index 0d7e74f45d..9c21733f2c 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.4.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q3.4.groovy @@ -27,6 +27,7 @@ suite("q3.4") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.1.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.1.groovy index 2bfd2435cd..0f8044cf3d 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.1.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.1.groovy @@ -27,6 +27,7 @@ suite("q4.1") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.2.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.2.groovy index 5319ede5fb..2d9290cd40 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.2.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.2.groovy @@ -27,6 +27,7 @@ suite("q4.2") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.3.groovy b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.3.groovy index 9281251508..90ecb169fa 100644 --- a/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.3.groovy +++ b/regression-test/suites/nereids_ssb_shape_sf100_p0/shape/q4.3.groovy @@ -27,6 +27,7 @@ suite("q4.3") { sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ 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 5f1af17de3..218f0284e4 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,6 +24,7 @@ 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' 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 2b5a59bb5d..0ac5156e8a 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,6 +24,7 @@ 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' 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 3c9f8c65ee..261535ecd0 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,6 +24,7 @@ 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' 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 2e00f3f94b..095a061f60 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,6 +24,7 @@ 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' 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 d231a1b691..a0f3cc5775 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,6 +24,7 @@ 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' 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 32f498ed32..9560837200 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,6 +24,7 @@ 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' 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 76e08750bd..169e0c4419 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,6 +24,7 @@ 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' 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 33bc545189..b095c295d3 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,6 +24,7 @@ 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' 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 d58ba67478..bc52a3b56c 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,6 +24,7 @@ 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' 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 a028237325..8cf276525c 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,6 +24,7 @@ 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' 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 9bf2682d58..ab1be4f765 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,6 +24,7 @@ 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' 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 72ee4f5f01..6f9a9d7010 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,6 +24,7 @@ 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' 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 c530a73073..c19a9c39ea 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,6 +24,7 @@ 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' 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 1cc301d257..f8a7fd56d3 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,6 +24,7 @@ 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' 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 ff0ee04f27..f8226761bb 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,6 +24,7 @@ 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' 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 1650c041b2..3f53b5a1e5 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,6 +24,7 @@ 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' 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 47df94c408..009ad64f76 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,6 +24,7 @@ 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' 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 0f06631602..a4e3223306 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,6 +24,7 @@ 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' 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 d9977f13b0..36785e95d6 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,6 +24,7 @@ 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' 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 a2c64ce489..c196c56d4f 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,6 +24,7 @@ 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' 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 331b87b05a..562a87794c 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,6 +24,7 @@ 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' 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 e0f4c1cee3..15cd3c47ba 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,6 +24,7 @@ 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' 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 10d160b42b..93971396d8 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,6 +24,7 @@ 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' 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 62fa7af5d2..8c7445128e 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,6 +24,7 @@ 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' 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 470839023b..212da14786 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,6 +24,7 @@ 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' 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 9c6db2738a..0812cc5ebd 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,6 +24,7 @@ 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' 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 e6af79abe0..b6af7ee5bf 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,6 +24,7 @@ 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' 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 36046c751e..dbada638b2 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,6 +24,7 @@ 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' 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 28234227b3..1dbb2ccc80 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,6 +24,7 @@ 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' 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 2cf22aa938..c5d4e67018 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,6 +24,7 @@ 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' 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 bbcf4c7ed5..a5d4aeec5f 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,6 +24,7 @@ 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' 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 f90e61c78f..571d9ce968 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,6 +24,7 @@ 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' 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 40e2cc325a..4ae42ff579 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,6 +24,7 @@ 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' 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 db94861543..83e52ba176 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,6 +24,7 @@ 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' 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 113a7636d1..09c36e38f1 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,6 +24,7 @@ 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' 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 b30d1e3c6e..dfedffb075 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,6 +24,7 @@ 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' 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 e20f8c6846..0144098273 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,6 +24,7 @@ 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' 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 f7663dd47e..5d45cf5492 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,6 +24,7 @@ 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' 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 2de8745bc2..341f33dff0 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,6 +24,7 @@ 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' 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 dc1d26f05e..85f1b5766a 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,6 +24,7 @@ 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' 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 b84809ec85..dfaa7d8bd6 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,6 +24,7 @@ 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' 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 3d27cdc9c7..8d43c273d9 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,6 +24,7 @@ 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' 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 a9d1dfd4d5..8518952cd0 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,6 +24,7 @@ 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' 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 7389f33df6..6c528aee47 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,6 +24,7 @@ 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' 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 b1ab83a140..26d5f60382 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,6 +24,7 @@ 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' 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 9545bdf6f2..425d225684 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,6 +24,7 @@ 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' 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 c2c0fbd60b..8c24e8bd61 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,6 +24,7 @@ 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' 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 6c91dcd197..666b8f3f81 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,6 +24,7 @@ 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' 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 640d877321..06bbf8de95 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,6 +24,7 @@ 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' 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 8a5f0e332a..a6ade92ca7 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,6 +24,7 @@ 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' 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 ec1c4dba2a..e470ee42a4 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,6 +24,7 @@ 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' 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 a40e987e3d..5568b9a51b 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,6 +24,7 @@ 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' 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 4f1b821b12..7dcd13c164 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,6 +24,7 @@ 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' 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 91ca2a1a21..0aaa81f7dc 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,6 +24,7 @@ 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' 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 d2cdade7f9..bb2b6e0283 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,6 +24,7 @@ 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' 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 782ba1d76d..e1bc304ab0 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,6 +24,7 @@ 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' 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 76acf04231..a9b77c4175 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,6 +24,7 @@ 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' 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 f16fa8d41a..89ead542dd 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,6 +24,7 @@ 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' 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 22c45b4acb..610429c86b 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,6 +24,7 @@ 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' 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 9015737eba..931e19113c 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,6 +24,7 @@ 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' 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 140ad0c63f..11c7dbc365 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,6 +24,7 @@ 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; ' 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 73e9dbc664..4594420afe 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,6 +24,7 @@ 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' 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 57620abddd..eff7c12fe2 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,6 +24,7 @@ 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' 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 148e131191..ccd56c63ef 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,6 +24,7 @@ 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' 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 55bd0137a1..25bdfcb6de 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,6 +24,7 @@ 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' 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 6835084c19..442a346a16 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,6 +24,7 @@ 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' 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 78ea021c35..d7685d0daa 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,6 +24,7 @@ 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' 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 ee1eeefb99..6f3afa4c5a 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,6 +24,7 @@ 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' 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 199cd6c370..586792c78c 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,6 +24,7 @@ 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' 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 c2f1efff0f..f7399d5fc0 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,6 +24,7 @@ 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' 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 e66ec67963..2525e19916 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,6 +24,7 @@ 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' 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 78d94e9ec6..880b996ab3 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,6 +24,7 @@ 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' 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 3b7bd0b2ef..15ee1f53f6 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,6 +24,7 @@ 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' 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 6b091f67ec..10c70573ce 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,6 +24,7 @@ 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' 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 b3eb5395cb..7380f68208 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,6 +24,7 @@ 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' 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 fd53e93faa..b8a269e597 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,6 +24,7 @@ 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' 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 7d2c56ac41..25a2c3219f 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,6 +24,7 @@ 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' 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 7dd14952be..80d79ca747 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,6 +24,7 @@ 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' 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 90cc965590..986ca10082 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,6 +24,7 @@ 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' 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 a4f927e683..5d26736a35 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,6 +24,7 @@ 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' 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 c46af99087..adf6337e26 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,6 +24,7 @@ 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' 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 6eaa7d9b51..ff082aaf17 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,6 +24,7 @@ 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' 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 e0bf20b5e7..6443ad1ee3 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,6 +24,7 @@ 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' 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 b921bd2f95..af5f17b3c2 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,6 +24,7 @@ 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' 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 8a37f19165..835735e4e3 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,6 +24,7 @@ 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' 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 19dae33db7..186b8d764b 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,6 +24,7 @@ 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' 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 244eb7a9f5..d832e49b8f 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,6 +24,7 @@ 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' 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 2689687f64..d1b0ff393a 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,6 +24,7 @@ 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' 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 c0b59c0689..bbc6a07443 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,6 +24,7 @@ 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' 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 c9f03201f4..f424642759 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,6 +24,7 @@ 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' 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 3a7a14e08b..d6466a783c 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,6 +24,7 @@ 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' 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 b44d75c947..b569213e94 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,6 +24,7 @@ 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' 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 f6ddcda8d2..676e51564e 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,6 +24,7 @@ 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' 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 5ebf780eb0..ba7e6a6e08 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,6 +24,7 @@ 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' 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 c085b3d999..80ce2668d2 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,6 +24,7 @@ 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' 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 dc3a2af8e5..332ce184c7 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,6 +24,7 @@ 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' 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 10c79b5f6f..ac9178ef4b 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,6 +24,7 @@ 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' 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 6710cdc854..5a2e7b924b 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,6 +24,7 @@ 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' 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 19c127bf8c..30bad12842 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,6 +24,7 @@ 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' diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf1.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf1.groovy deleted file mode 100644 index 289caf1863..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf1.groovy +++ /dev/null @@ -1,81 +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("ds_rf1") { - 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 - 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; - - ''' - 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.1" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF0[d_date_sk->[sr_returned_date_sk],RF2[ctr_customer_sk->[c_customer_sk],RF1[s_store_sk->[ctr_store_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf10.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf10.groovy deleted file mode 100644 index e7e12b9378..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf10.groovy +++ /dev/null @@ -1,115 +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("ds_rf10") { - 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 - 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 ('Storey County','Marquette County','Warren County','Cochran County','Kandiyohi 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 1 and 1+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 1 ANd 1+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 1 and 1+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; - - ''' - 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.10" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF5[c_customer_sk->[ss_customer_sk],RF4[d_date_sk->[ss_sold_date_sk],RF3[c_current_cdemo_sk->[cd_demo_sk],RF2[ca_address_sk->[c_current_addr_sk],RF1[d_date_sk->[ws_sold_date_sk],RF0[d_date_sk->[cs_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf11.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf11.groovy deleted file mode 100644 index 3e9dcab395..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf11.groovy +++ /dev/null @@ -1,137 +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("ds_rf11") { - 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 - 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_birth_country - 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 = 2001 - and t_s_secyear.dyear = 2001+1 - and t_w_firstyear.dyear = 2001 - and t_w_secyear.dyear = 2001+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_birth_country -limit 100; - - ''' - 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.11" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[c_customer_sk->[ss_customer_sk],RF0[d_date_sk->[ss_sold_date_sk],RF3[c_customer_sk->[ws_bill_customer_sk],RF2[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf12.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf12.groovy deleted file mode 100644 index 4abe8f4bf3..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf12.groovy +++ /dev/null @@ -1,90 +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("ds_rf12") { - 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 - 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 ('Books', 'Sports', 'Men') - and ws_sold_date_sk = d_date_sk - and d_date between cast('1998-04-06' as date) - and (cast('1998-04-06' 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; - - ''' - 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.12" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[i_item_sk->[ws_item_sk],RF0[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf13.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf13.groovy deleted file mode 100644 index 7794d8f4be..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf13.groovy +++ /dev/null @@ -1,107 +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("ds_rf13") { - 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 - 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 = 'D' - and cd_education_status = 'Unknown' - 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 = 'S' - and cd_education_status = 'College' - 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 = 'M' - and cd_education_status = '4 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 ('SD', 'KS', 'MI') - and ss_net_profit between 100 and 200 - ) or - (ss_addr_sk = ca_address_sk - and ca_country = 'United States' - and ca_state in ('MO', 'ND', 'CO') - and ss_net_profit between 150 and 300 - ) or - (ss_addr_sk = ca_address_sk - and ca_country = 'United States' - and ca_state in ('NH', 'OH', 'TX') - and ss_net_profit between 50 and 250 - )) -; - - ''' - 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.13" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF4[ss_store_sk->[s_store_sk],RF3[ss_cdemo_sk->[cd_demo_sk],RF2[hd_demo_sk->[ss_hdemo_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[ca_address_sk->[ss_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf14.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf14.groovy deleted file mode 100644 index 0b90f604cd..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf14.groovy +++ /dev/null @@ -1,160 +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("ds_rf14") { - 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 - with cross_items as - (select i_item_sk ss_item_sk - from item, - (select iss.i_brand_id brand_id - ,iss.i_class_id class_id - ,iss.i_category_id category_id - from store_sales - ,item iss - ,date_dim d1 - where ss_item_sk = iss.i_item_sk - and ss_sold_date_sk = d1.d_date_sk - and d1.d_year between 2000 AND 2000 + 2 - intersect - select ics.i_brand_id - ,ics.i_class_id - ,ics.i_category_id - from catalog_sales - ,item ics - ,date_dim d2 - where cs_item_sk = ics.i_item_sk - and cs_sold_date_sk = d2.d_date_sk - and d2.d_year between 2000 AND 2000 + 2 - intersect - select iws.i_brand_id - ,iws.i_class_id - ,iws.i_category_id - from web_sales - ,item iws - ,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 2000 AND 2000 + 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 - 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 2000 and 2000 + 2 - 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 2000 and 2000 + 2 - union all - select ws_quantity quantity - ,ws_list_price list_price - from web_sales - ,date_dim - where ws_sold_date_sk = d_date_sk - and d_year between 2000 and 2000 + 2) x) - 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 = 2000+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 = 2000+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 = 2000+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; - - ''' - 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.14" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF6[class_id->[i_class_id],RF7[category_id->[i_category_id],RF8[brand_id->[i_brand_id],RF1[i_item_sk->[ss_item_sk],RF0[d_date_sk->[ss_sold_date_sk],RF3[i_item_sk->[cs_item_sk],RF2[d_date_sk->[cs_sold_date_sk],RF5[i_item_sk->[ws_item_sk],RF4[d_date_sk->[ws_sold_date_sk],RF9[d_date_sk->[ss_sold_date_sk],RF10[d_date_sk->[cs_sold_date_sk],RF11[d_date_sk->[ws_sold_date_sk],RF14[ss_item_sk->[ss_item_sk],RF13[i_item_sk->[ss_item_sk],RF12[d_date_sk->[ss_sold_date_sk],RF17[cs_item_sk->[ss_item_sk],RF16[i_item_sk->[cs_item_sk],RF15[d_date_sk->[cs_sold_date_sk],RF20[ws_item_sk->[ss_item_sk],RF19[i_item_sk->[ws_item_sk],RF18[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf15.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf15.groovy deleted file mode 100644 index df87e7eca8..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf15.groovy +++ /dev/null @@ -1,76 +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("ds_rf15") { - 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 - 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; - - ''' - 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.15" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[c_customer_sk->[cs_bill_customer_sk],RF1[d_date_sk->[cs_sold_date_sk],RF0[ca_address_sk->[c_current_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf16.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf16.groovy deleted file mode 100644 index e15da77885..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf16.groovy +++ /dev/null @@ -1,87 +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("ds_rf16") { - 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 - 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; - - ''' - 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.16" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF4[cs_order_number->[cs_order_number],RF3[cc_call_center_sk->[cs_call_center_sk],RF2[cs_order_number->[cr_order_number],RF1[d_date_sk->[cs_ship_date_sk],RF0[ca_address_sk->[cs_ship_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf17.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf17.groovy deleted file mode 100644 index 8b537ae1c4..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf17.groovy +++ /dev/null @@ -1,101 +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("ds_rf17") { - 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 - 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; - - ''' - 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.17" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF8[sr_customer_sk->[cs_bill_customer_sk],RF9[sr_item_sk->[cs_item_sk],RF7[d_date_sk->[cs_sold_date_sk],RF6[s_store_sk->[ss_store_sk],RF5[i_item_sk->[ss_item_sk],RF2[sr_customer_sk->[ss_customer_sk],RF3[sr_item_sk->[ss_item_sk],RF4[sr_ticket_number->[ss_ticket_number],RF1[d_date_sk->[ss_sold_date_sk],RF0[d_date_sk->[sr_returned_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf18.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf18.groovy deleted file mode 100644 index 157a11ed92..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf18.groovy +++ /dev/null @@ -1,90 +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("ds_rf18") { - 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 - 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 = 'Advanced Degree' and - c_current_cdemo_sk = cd2.cd_demo_sk and - c_current_addr_sk = ca_address_sk and - c_birth_month in (10,7,8,4,1,2) and - d_year = 1998 and - ca_state in ('WA','GA','NC' - ,'ME','WY','OK','IN') - 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; - - ''' - 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.18" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF5[cs_item_sk->[i_item_sk],RF4[d_date_sk->[cs_sold_date_sk],RF3[c_customer_sk->[cs_bill_customer_sk],RF2[cd_demo_sk->[cs_bill_cdemo_sk],RF1[c_current_cdemo_sk->[cd_demo_sk],RF0[ca_address_sk->[c_current_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf19.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf19.groovy deleted file mode 100644 index 7bbad11ef5..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf19.groovy +++ /dev/null @@ -1,81 +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("ds_rf19") { - 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 - 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 ; - - ''' - 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.19" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF4[s_store_sk->[ss_store_sk],RF3[c_current_addr_sk->[ca_address_sk],RF2[ss_customer_sk->[c_customer_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_sk->[ss_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf2.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf2.groovy deleted file mode 100644 index a7b6155cc2..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf2.groovy +++ /dev/null @@ -1,116 +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("ds_rf2") { - 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 - 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; - - ''' - 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.2" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF0[d_date_sk->[ws_sold_date_sk, cs_sold_date_sk],RF2[d_week_seq->[d_week_seq],RF1[d_week_seq->[d_week_seq]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf20.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf20.groovy deleted file mode 100644 index 802adab15a..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf20.groovy +++ /dev/null @@ -1,86 +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("ds_rf20") { - 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 - 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; - - ''' - 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.20" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[i_item_sk->[cs_item_sk],RF0[d_date_sk->[cs_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf21.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf21.groovy deleted file mode 100644 index ca29142dcc..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf21.groovy +++ /dev/null @@ -1,86 +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("ds_rf21") { - 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 - 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; - - ''' - 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.21" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[w_warehouse_sk->[inv_warehouse_sk],RF1[d_date_sk->[inv_date_sk],RF0[i_item_sk->[inv_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf22.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf22.groovy deleted file mode 100644 index dd11e7e267..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf22.groovy +++ /dev/null @@ -1,76 +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("ds_rf22") { - 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 - 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; - - ''' - 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.22" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[d_date_sk->[inv_date_sk],RF0[i_item_sk->[inv_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf23.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf23.groovy deleted file mode 100644 index 0984f4df11..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf23.groovy +++ /dev/null @@ -1,108 +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("ds_rf23") { - 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 - 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 - ,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) - 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 - 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) - group by c_customer_sk) t), - best_ss_customer as - (select c_customer_sk,sum(ss_quantity*ss_sales_price) ssales - from store_sales - ,customer - where ss_customer_sk = c_customer_sk - group by c_customer_sk - having sum(ss_quantity*ss_sales_price) > (95/100.0) * (select - * -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 = 5 - 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) - union all - select ws_quantity*ws_list_price sales - from web_sales - ,date_dim - where d_year = 2000 - and d_moy = 5 - 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; - - ''' - 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.23" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[i_item_sk->[ss_item_sk],RF0[d_date_sk->[ss_sold_date_sk],RF4[c_customer_sk->[ss_customer_sk],RF3[c_customer_sk->[ss_customer_sk],RF2[d_date_sk->[ss_sold_date_sk],RF6[c_customer_sk->[cs_bill_customer_sk],RF5[d_date_sk->[cs_sold_date_sk],RF8[c_customer_sk->[ws_bill_customer_sk],RF7[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf24.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf24.groovy deleted file mode 100644 index b66787da27..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf24.groovy +++ /dev/null @@ -1,111 +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("ds_rf24") { - 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 - 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 -; - - ''' - 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.24" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF5[sr_item_sk->[ss_item_sk],RF6[sr_ticket_number->[ss_ticket_number],RF4[i_item_sk->[ss_item_sk],RF2[ca_zip->[s_zip],RF3[c_customer_sk->[ss_customer_sk],RF1[s_store_sk->[ss_store_sk],RF0[ca_address_sk->[c_current_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf25.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf25.groovy deleted file mode 100644 index c67775d712..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf25.groovy +++ /dev/null @@ -1,103 +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("ds_rf25") { - 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 - select - i_item_id - ,i_item_desc - ,s_store_id - ,s_store_name - ,sum(ss_net_profit) as store_sales_profit - ,sum(sr_net_loss) as store_returns_loss - ,sum(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 = 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 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 = 2000 - 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 = 2000 - 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; - - ''' - 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.25" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF8[sr_customer_sk->[cs_bill_customer_sk],RF9[sr_item_sk->[cs_item_sk],RF7[d_date_sk->[cs_sold_date_sk],RF6[s_store_sk->[ss_store_sk],RF5[i_item_sk->[ss_item_sk],RF2[sr_customer_sk->[ss_customer_sk],RF3[sr_item_sk->[ss_item_sk],RF4[sr_ticket_number->[ss_ticket_number],RF1[d_date_sk->[ss_sold_date_sk],RF0[d_date_sk->[sr_returned_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf26.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf26.groovy deleted file mode 100644 index 9b4ba4a835..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf26.groovy +++ /dev/null @@ -1,77 +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("ds_rf26") { - 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 - 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; - - ''' - 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.26" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[i_item_sk->[cs_item_sk],RF2[p_promo_sk->[cs_promo_sk],RF1[d_date_sk->[cs_sold_date_sk],RF0[cd_demo_sk->[cs_bill_cdemo_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf27.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf27.groovy deleted file mode 100644 index 7fc17b07f0..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf27.groovy +++ /dev/null @@ -1,79 +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("ds_rf27") { - 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 - 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; - - ''' - 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.27" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[s_store_sk->[ss_store_sk],RF2[i_item_sk->[ss_item_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[cd_demo_sk->[ss_cdemo_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf28.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf28.groovy deleted file mode 100644 index 705561e394..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf28.groovy +++ /dev/null @@ -1,109 +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("ds_rf28") { - 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 - 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 131 and 131+10 - or ss_coupon_amt between 16798 and 16798+1000 - or ss_wholesale_cost between 25 and 25+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 145 and 145+10 - or ss_coupon_amt between 14792 and 14792+1000 - or ss_wholesale_cost between 46 and 46+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 150 and 150+10 - or ss_coupon_amt between 6600 and 6600+1000 - or ss_wholesale_cost between 9 and 9+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 91 and 91+10 - or ss_coupon_amt between 13493 and 13493+1000 - or ss_wholesale_cost between 36 and 36+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 0 and 0+10 - or ss_coupon_amt between 7629 and 7629+1000 - or ss_wholesale_cost between 6 and 6+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 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; - - ''' - 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.28" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf29.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf29.groovy deleted file mode 100644 index bea8af3bf0..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf29.groovy +++ /dev/null @@ -1,103 +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("ds_rf29") { - 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 - select - i_item_id - ,i_item_desc - ,s_store_id - ,s_store_name - ,avg(ss_quantity) as store_sales_quantity - ,avg(sr_return_quantity) as store_returns_quantity - ,avg(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 = 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 4 + 3 - 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_year in (1999,1999+1,1999+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; - - ''' - 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.29" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF9[d_date_sk->[cs_sold_date_sk],RF7[sr_customer_sk->[cs_bill_customer_sk],RF8[sr_item_sk->[cs_item_sk],RF6[s_store_sk->[ss_store_sk],RF5[i_item_sk->[ss_item_sk],RF2[sr_customer_sk->[ss_customer_sk],RF3[sr_item_sk->[ss_item_sk],RF4[sr_ticket_number->[ss_ticket_number],RF1[d_date_sk->[ss_sold_date_sk],RF0[d_date_sk->[sr_returned_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf3.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf3.groovy deleted file mode 100644 index 1a179bf543..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf3.groovy +++ /dev/null @@ -1,77 +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("ds_rf3") { - 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 - 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; - - ''' - 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.3" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_sk->[ss_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf30.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf30.groovy deleted file mode 100644 index f7dcbe0919..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf30.groovy +++ /dev/null @@ -1,87 +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("ds_rf30") { - 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 - 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; - - ''' - 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.30" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[ca_address_sk->[wr_returning_addr_sk],RF0[d_date_sk->[wr_returned_date_sk],RF3[c_customer_sk->[ctr_customer_sk],RF2[ca_address_sk->[c_current_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf31.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf31.groovy deleted file mode 100644 index 26a64a1666..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf31.groovy +++ /dev/null @@ -1,108 +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("ds_rf31") { - 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 - 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 = 2000 - and ss1.ca_county = ss2.ca_county - and ss2.d_qoy = 2 - and ss2.d_year = 2000 - and ss2.ca_county = ss3.ca_county - and ss3.d_qoy = 3 - and ss3.d_year = 2000 - and ss1.ca_county = ws1.ca_county - and ws1.d_qoy = 1 - and ws1.d_year = 2000 - and ws1.ca_county = ws2.ca_county - and ws2.d_qoy = 2 - and ws2.d_year = 2000 - and ws1.ca_county = ws3.ca_county - and ws3.d_qoy = 3 - and ws3.d_year =2000 - 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 web_q1_q2_increase; - - ''' - 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.31" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[ca_address_sk->[ss_addr_sk],RF0[d_date_sk->[ss_sold_date_sk],RF3[ca_address_sk->[ws_bill_addr_sk],RF2[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf32.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf32.groovy deleted file mode 100644 index 63d9c4ea83..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf32.groovy +++ /dev/null @@ -1,84 +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("ds_rf32") { - 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 - 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; - - ''' - 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.32" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[d_date_sk->[cs_sold_date_sk],RF0[i_item_sk->[cs_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf33.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf33.groovy deleted file mode 100644 index af3e078e02..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf33.groovy +++ /dev/null @@ -1,131 +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("ds_rf33") { - 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 - 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 ('Home')) - and ss_item_sk = i_item_sk - and ss_sold_date_sk = d_date_sk - and d_year = 2002 - and d_moy = 1 - 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 ('Home')) - and cs_item_sk = i_item_sk - and cs_sold_date_sk = d_date_sk - and d_year = 2002 - and d_moy = 1 - 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 ('Home')) - and ws_item_sk = i_item_sk - and ws_sold_date_sk = d_date_sk - and d_year = 2002 - and d_moy = 1 - 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; - - ''' - 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.33" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[i_item_sk->[ss_item_sk],RF2[ca_address_sk->[ss_addr_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[i_manufact_id->[i_manufact_id],RF7[i_item_sk->[cs_item_sk],RF6[ca_address_sk->[cs_bill_addr_sk],RF5[d_date_sk->[cs_sold_date_sk],RF4[i_manufact_id->[i_manufact_id],RF11[i_manufact_id->[i_manufact_id],RF10[ws_item_sk->[i_item_sk],RF9[ca_address_sk->[ws_bill_addr_sk],RF8[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf34.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf34.groovy deleted file mode 100644 index 01eb27f795..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf34.groovy +++ /dev/null @@ -1,87 +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("ds_rf34") { - 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 - 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; - - ''' - 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.34" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[ss_customer_sk->[c_customer_sk],RF2[s_store_sk->[ss_store_sk],RF1[hd_demo_sk->[ss_hdemo_sk],RF0[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf35.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf35.groovy deleted file mode 100644 index 620b0970e0..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf35.groovy +++ /dev/null @@ -1,114 +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("ds_rf35") { - 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 - select - ca_state, - cd_gender, - cd_marital_status, - cd_dep_count, - count(*) cnt1, - max(cd_dep_count), - sum(cd_dep_count), - max(cd_dep_count), - cd_dep_employed_count, - count(*) cnt2, - max(cd_dep_employed_count), - sum(cd_dep_employed_count), - max(cd_dep_employed_count), - cd_dep_college_count, - count(*) cnt3, - max(cd_dep_college_count), - sum(cd_dep_college_count), - max(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 = 2001 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 = 2001 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 = 2001 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; - - ''' - 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.35" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF5[c_customer_sk->[ss_customer_sk],RF4[d_date_sk->[ss_sold_date_sk],RF3[cd_demo_sk->[c_current_cdemo_sk],RF2[ca_address_sk->[c_current_addr_sk],RF1[d_date_sk->[ws_sold_date_sk],RF0[d_date_sk->[cs_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf36.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf36.groovy deleted file mode 100644 index d25242f23a..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf36.groovy +++ /dev/null @@ -1,86 +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("ds_rf36") { - 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 - 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; - - ''' - 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.36" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[s_store_sk->[ss_store_sk],RF1[i_item_sk->[ss_item_sk],RF0[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf37.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf37.groovy deleted file mode 100644 index 8869995ddd..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf37.groovy +++ /dev/null @@ -1,73 +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("ds_rf37") { - 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 - 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; - - ''' - 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.37" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[i_item_sk->[cs_item_sk],RF1[d_date_sk->[inv_date_sk],RF0[i_item_sk->[inv_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf38.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf38.groovy deleted file mode 100644 index a609d87ad1..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf38.groovy +++ /dev/null @@ -1,79 +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("ds_rf38") { - 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 - 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; - - ''' - 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.38" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[c_customer_sk->[ss_customer_sk],RF0[d_date_sk->[ss_sold_date_sk],RF3[c_customer_sk->[cs_bill_customer_sk],RF2[d_date_sk->[cs_sold_date_sk],RF5[c_customer_sk->[ws_bill_customer_sk],RF4[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf39.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf39.groovy deleted file mode 100644 index bd69628602..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf39.groovy +++ /dev/null @@ -1,83 +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("ds_rf39") { - 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 - 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; - - ''' - 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.39" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[w_warehouse_sk->[inv_warehouse_sk],RF1[i_item_sk->[inv_item_sk],RF0[d_date_sk->[inv_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf4.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf4.groovy deleted file mode 100644 index 970a35f121..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf4.groovy +++ /dev/null @@ -1,172 +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("ds_rf4") { - 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 - 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; - - ''' - 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.4" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[c_customer_sk->[ss_customer_sk],RF0[d_date_sk->[ss_sold_date_sk],RF3[c_customer_sk->[cs_bill_customer_sk],RF2[d_date_sk->[cs_sold_date_sk],RF5[c_customer_sk->[ws_bill_customer_sk],RF4[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf40.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf40.groovy deleted file mode 100644 index 5414b93cb9..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf40.groovy +++ /dev/null @@ -1,84 +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("ds_rf40") { - 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 - 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; - - ''' - 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.40" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF4[w_warehouse_sk->[cs_warehouse_sk],RF2[cs_order_number->[cr_order_number],RF3[cs_item_sk->[cr_item_sk],RF1[d_date_sk->[cs_sold_date_sk],RF0[i_item_sk->[cs_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf41.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf41.groovy deleted file mode 100644 index 77637a7b8b..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf41.groovy +++ /dev/null @@ -1,108 +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("ds_rf41") { - 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 - select distinct(i_product_name) - from item i1 - where i_manufact_id between 748 and 748+40 - and (select count(*) as item_cnt - from item - where (i_manufact = i1.i_manufact and - ((i_category = 'Women' and - (i_color = 'gainsboro' or i_color = 'aquamarine') and - (i_units = 'Ounce' or i_units = 'Dozen') and - (i_size = 'medium' or i_size = 'economy') - ) or - (i_category = 'Women' and - (i_color = 'chiffon' or i_color = 'violet') and - (i_units = 'Ton' or i_units = 'Pound') and - (i_size = 'extra large' or i_size = 'small') - ) or - (i_category = 'Men' and - (i_color = 'chartreuse' or i_color = 'blue') and - (i_units = 'Each' or i_units = 'Oz') and - (i_size = 'N/A' or i_size = 'large') - ) or - (i_category = 'Men' and - (i_color = 'tan' or i_color = 'dodger') and - (i_units = 'Bunch' or i_units = 'Tsp') and - (i_size = 'medium' or i_size = 'economy') - ))) or - (i_manufact = i1.i_manufact and - ((i_category = 'Women' and - (i_color = 'blanched' or i_color = 'tomato') and - (i_units = 'Tbl' or i_units = 'Case') and - (i_size = 'medium' or i_size = 'economy') - ) or - (i_category = 'Women' and - (i_color = 'almond' or i_color = 'lime') and - (i_units = 'Box' or i_units = 'Dram') and - (i_size = 'extra large' or i_size = 'small') - ) or - (i_category = 'Men' and - (i_color = 'peru' or i_color = 'saddle') and - (i_units = 'Pallet' or i_units = 'Gram') and - (i_size = 'N/A' or i_size = 'large') - ) or - (i_category = 'Men' and - (i_color = 'indian' or i_color = 'spring') and - (i_units = 'Unknown' or i_units = 'Carton') and - (i_size = 'medium' or i_size = 'economy') - )))) > 0 - order by i_product_name - limit 100; - - ''' - 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.41" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF0[i_manufact->[i_manufact]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf42.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf42.groovy deleted file mode 100644 index 1eb73d69a1..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf42.groovy +++ /dev/null @@ -1,78 +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("ds_rf42") { - 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 - 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 ; - - ''' - 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.42" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_sk->[ss_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf43.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf43.groovy deleted file mode 100644 index f07a996f76..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf43.groovy +++ /dev/null @@ -1,75 +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("ds_rf43") { - 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 - 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; - - ''' - 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.43" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[s_store_sk->[ss_store_sk],RF0[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf44.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf44.groovy deleted file mode 100644 index 07c00fd681..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf44.groovy +++ /dev/null @@ -1,91 +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("ds_rf44") { - 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 - 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 = 146 - 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 = 146 - and ss_addr_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 = 146 - 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 = 146 - and ss_addr_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; - - ''' - 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.44" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[item_sk->[i_item_sk],RF0[item_sk->[i_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf45.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf45.groovy deleted file mode 100644 index 042868ff22..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf45.groovy +++ /dev/null @@ -1,76 +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("ds_rf45") { - 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 - 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; - - ''' - 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.45" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[c_customer_sk->[ws_bill_customer_sk],RF2[i_item_sk->[ws_item_sk],RF1[d_date_sk->[ws_sold_date_sk],RF0[ca_address_sk->[c_current_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf46.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf46.groovy deleted file mode 100644 index 500bcc18d4..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf46.groovy +++ /dev/null @@ -1,90 +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("ds_rf46") { - 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 - 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 = 6 or - household_demographics.hd_vehicle_count= 0) - and date_dim.d_dow in (6,0) - and date_dim.d_year in (1999,1999+1,1999+2) - and store.s_city in ('Five Points','Centerville','Oak Grove','Fairview','Liberty') - 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; - - ''' - 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.46" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF5[c_customer_sk->[ss_customer_sk],RF4[ca_address_sk->[ss_addr_sk],RF3[s_store_sk->[ss_store_sk],RF2[hd_demo_sk->[ss_hdemo_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[ca_address_sk->[c_current_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf47.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf47.groovy deleted file mode 100644 index b6de6acf25..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf47.groovy +++ /dev/null @@ -1,107 +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("ds_rf47") { - 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 - 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 = 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, - s_store_name, s_company_name, - d_year, d_moy), - v2 as( - select v1.s_store_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 = 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, nsum - limit 100; - - ''' - 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.47" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[s_store_sk->[ss_store_sk],RF1[i_item_sk->[ss_item_sk],RF0[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf48.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf48.groovy deleted file mode 100644 index b8024c5a0c..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf48.groovy +++ /dev/null @@ -1,123 +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("ds_rf48") { - 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 - 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 - and - ( - ( - cd_demo_sk = ss_cdemo_sk - and - cd_marital_status = 'U' - and - cd_education_status = 'Primary' - and - ss_sales_price between 100.00 and 150.00 - ) - or - ( - cd_demo_sk = ss_cdemo_sk - and - cd_marital_status = 'W' - and - cd_education_status = 'College' - 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 = '2 yr 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 ('MD', 'MN', 'IA') - and ss_net_profit between 0 and 2000 - ) - or - (ss_addr_sk = ca_address_sk - and - ca_country = 'United States' - and - ca_state in ('VA', 'IL', 'TX') - and ss_net_profit between 150 and 3000 - ) - or - (ss_addr_sk = ca_address_sk - and - ca_country = 'United States' - and - ca_state in ('MI', 'WI', 'IN') - and ss_net_profit between 50 and 25000 - ) - ) -; - - ''' - 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.48" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[s_store_sk->[ss_store_sk],RF2[d_date_sk->[ss_sold_date_sk],RF1[ca_address_sk->[ss_addr_sk],RF0[cd_demo_sk->[ss_cdemo_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf49.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf49.groovy deleted file mode 100644 index 6bba794d52..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf49.groovy +++ /dev/null @@ -1,185 +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("ds_rf49") { - 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 - 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 = 1999 - and d_moy = 12 - 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 = 1999 - and d_moy = 12 - 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 = 1999 - and d_moy = 12 - 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; - - ''' - 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.49" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[ws_order_number->[wr_order_number],RF2[ws_item_sk->[wr_item_sk],RF0[d_date_sk->[ws_sold_date_sk],RF4[cs_order_number->[cr_order_number],RF5[cs_item_sk->[cr_item_sk],RF3[d_date_sk->[cs_sold_date_sk],RF7[ss_ticket_number->[sr_ticket_number],RF8[ss_item_sk->[sr_item_sk],RF6[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf5.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf5.groovy deleted file mode 100644 index 2cc0a1cc70..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf5.groovy +++ /dev/null @@ -1,184 +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("ds_rf5") { - 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 - 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; - - ''' - 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.5" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF0[d_date_sk->[ss_sold_date_sk, sr_returned_date_sk],RF1[d_date_sk->[cs_sold_date_sk, cr_returned_date_sk],RF4[d_date_sk->[ws_sold_date_sk, wr_returned_date_sk],RF2[wr_item_sk->[ws_item_sk],RF3[wr_order_number->[ws_order_number]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf50.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf50.groovy deleted file mode 100644 index db546e6e39..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf50.groovy +++ /dev/null @@ -1,114 +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("ds_rf50") { - 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 - 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; - - ''' - 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.50" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF5[s_store_sk->[ss_store_sk],RF4[d_date_sk->[ss_sold_date_sk],RF1[sr_customer_sk->[ss_customer_sk],RF2[sr_item_sk->[ss_item_sk],RF3[sr_ticket_number->[ss_ticket_number],RF0[d_date_sk->[sr_returned_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf51.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf51.groovy deleted file mode 100644 index 54682f63c7..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf51.groovy +++ /dev/null @@ -1,101 +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("ds_rf51") { - 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 - 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 1216 and 1216+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 1216 and 1216+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; - - ''' - 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.51" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[d_date_sk->[ss_sold_date_sk],RF0[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf52.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf52.groovy deleted file mode 100644 index 75940a51b3..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf52.groovy +++ /dev/null @@ -1,78 +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("ds_rf52") { - 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 - 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 ; - - ''' - 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.52" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_sk->[ss_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf53.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf53.groovy deleted file mode 100644 index 5e7a32194a..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf53.groovy +++ /dev/null @@ -1,84 +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("ds_rf53") { - 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 - 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; - - ''' - 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.53" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[s_store_sk->[ss_store_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_sk->[ss_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf54.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf54.groovy deleted file mode 100644 index f75ee0d02a..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf54.groovy +++ /dev/null @@ -1,112 +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("ds_rf54") { - 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 - 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 = 'Women' - and i_class = 'maternity' - and c_customer_sk = cs_or_ws_sales.customer_sk - and d_moy = 5 - and d_year = 1998 - ) - , 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 = 1998 and d_moy = 5) - and (select distinct d_month_seq+3 - from date_dim where d_year = 1998 and d_moy = 5) - 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; - - ''' - 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.54" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF6[d_date_sk->[ss_sold_date_sk],RF5[c_customer_sk->[ss_customer_sk],RF3[s_county->[ca_county],RF4[s_state->[ca_state],RF2[c_current_addr_sk->[ca_address_sk],RF1[customer_sk->[c_customer_sk],RF0[i_item_sk->[cs_item_sk, ws_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf55.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf55.groovy deleted file mode 100644 index 3d148e731e..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf55.groovy +++ /dev/null @@ -1,70 +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("ds_rf55") { - 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 - 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 ; - - ''' - 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.55" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_sk->[ss_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf56.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf56.groovy deleted file mode 100644 index 3175014518..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf56.groovy +++ /dev/null @@ -1,124 +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("ds_rf56") { - 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 - 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','green','cyan')) - and ss_item_sk = i_item_sk - and ss_sold_date_sk = d_date_sk - and d_year = 2000 - and d_moy = 2 - 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','green','cyan')) - and cs_item_sk = i_item_sk - and cs_sold_date_sk = d_date_sk - and d_year = 2000 - and d_moy = 2 - 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','green','cyan')) - and ws_item_sk = i_item_sk - and ws_sold_date_sk = d_date_sk - and d_year = 2000 - and d_moy = 2 - 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; - - ''' - 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.56" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF3[ca_address_sk->[ss_addr_sk],RF2[i_item_sk->[ss_item_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_id->[i_item_id],RF7[cs_bill_addr_sk->[ca_address_sk],RF6[i_item_sk->[cs_item_sk],RF5[d_date_sk->[cs_sold_date_sk],RF4[i_item_id->[i_item_id],RF11[ws_bill_addr_sk->[ca_address_sk],RF10[i_item_sk->[ws_item_sk],RF9[d_date_sk->[ws_sold_date_sk],RF8[i_item_id->[i_item_id]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf57.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf57.groovy deleted file mode 100644 index 384c2d4a13..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf57.groovy +++ /dev/null @@ -1,104 +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("ds_rf57") { - 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 - 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 = 1999 or - ( d_year = 1999-1 and d_moy =12) or - ( d_year = 1999+1 and d_moy =1) - ) - group by i_category, i_brand, - cc_name , d_year, d_moy), - v2 as( - select v1.i_brand - ,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 = 1999 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; - - ''' - 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.57" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[cc_call_center_sk->[cs_call_center_sk],RF1[i_item_sk->[cs_item_sk],RF0[d_date_sk->[cs_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf58.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf58.groovy deleted file mode 100644 index 9c3c4ebc71..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf58.groovy +++ /dev/null @@ -1,121 +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("ds_rf58") { - 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 - 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-03-24')) - 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-03-24')) - 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-03-24')) - 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; - - ''' - 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.58" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF13[item_id->[i_item_id],RF12[i_item_sk->[cs_item_sk],RF11[d_date_sk->[cs_sold_date_sk],RF10[d_date->[d_date],RF9[d_week_seq->[d_week_seq],RF8[item_id->[i_item_id],RF7[i_item_sk->[ws_item_sk],RF6[d_date_sk->[ws_sold_date_sk],RF5[d_date->[d_date],RF4[d_week_seq->[d_week_seq],RF3[i_item_sk->[ss_item_sk],RF2[d_date_sk->[ss_sold_date_sk],RF1[d_date->[d_date],RF0[d_week_seq->[d_week_seq]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf59.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf59.groovy deleted file mode 100644 index abecbdcd0a..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf59.groovy +++ /dev/null @@ -1,99 +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("ds_rf59") { - 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 - 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 - ss_store_sk = s_store_sk and - d_month_seq between 1196 and 1196 + 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 - ss_store_sk = s_store_sk and - d_month_seq between 1196+ 12 and 1196 + 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; - - ''' - 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.59" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF0[d_date_sk->[ss_sold_date_sk],RF4[s_store_sk->[ss_store_sk],RF3[d_week_seq->[d_week_seq],RF2[s_store_sk->[ss_store_sk],RF1[d_week_seq->[d_week_seq]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf6.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf6.groovy deleted file mode 100644 index a5940e32f2..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf6.groovy +++ /dev/null @@ -1,82 +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("ds_rf6") { - 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 - 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; - - ''' - 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.6" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF5[ca_address_sk->[c_current_addr_sk],RF4[ss_customer_sk->[c_customer_sk],RF3[i_item_sk->[ss_item_sk],RF2[d_date_sk->[ss_sold_date_sk],RF1[d_month_seq->[d_month_seq],RF0[i_category->[i_category]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf60.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf60.groovy deleted file mode 100644 index 3c35b50e2a..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf60.groovy +++ /dev/null @@ -1,134 +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("ds_rf60") { - 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 - 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 ('Children')) - and ss_item_sk = i_item_sk - and ss_sold_date_sk = d_date_sk - and d_year = 2000 - and d_moy = 8 - and ss_addr_sk = ca_address_sk - and ca_gmt_offset = -7 - 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 ('Children')) - and cs_item_sk = i_item_sk - and cs_sold_date_sk = d_date_sk - and d_year = 2000 - and d_moy = 8 - and cs_bill_addr_sk = ca_address_sk - and ca_gmt_offset = -7 - 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 ('Children')) - and ws_item_sk = i_item_sk - and ws_sold_date_sk = d_date_sk - and d_year = 2000 - and d_moy = 8 - and ws_bill_addr_sk = ca_address_sk - and ca_gmt_offset = -7 - 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; - - ''' - 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.60" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[i_item_sk->[ss_item_sk],RF2[ca_address_sk->[ss_addr_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_id->[i_item_id],RF7[i_item_sk->[cs_item_sk],RF6[ca_address_sk->[cs_bill_addr_sk],RF5[d_date_sk->[cs_sold_date_sk],RF4[i_item_id->[i_item_id],RF11[i_item_sk->[ws_item_sk],RF10[ca_address_sk->[ws_bill_addr_sk],RF9[d_date_sk->[ws_sold_date_sk],RF8[i_item_id->[i_item_id]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf61.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf61.groovy deleted file mode 100644 index 7a59491cd9..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf61.groovy +++ /dev/null @@ -1,100 +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("ds_rf61") { - 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 - 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 = 'Jewelry' - and (p_channel_dmail = 'Y' or p_channel_email = 'Y' or p_channel_tv = 'Y') - and s_gmt_offset = -7 - and d_year = 1999 - and d_moy = 11) 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 = 'Jewelry' - and s_gmt_offset = -7 - and d_year = 1999 - and d_moy = 11) all_sales -order by promotions, total -limit 100; - - ''' - 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.61" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF10[c_current_addr_sk->[ca_address_sk],RF9[ss_item_sk->[i_item_sk],RF8[ss_customer_sk->[c_customer_sk],RF7[ss_promo_sk->[p_promo_sk],RF6[ss_sold_date_sk->[d_date_sk],RF5[s_store_sk->[ss_store_sk],RF4[c_current_addr_sk->[ca_address_sk],RF3[ss_item_sk->[i_item_sk],RF2[ss_sold_date_sk->[d_date_sk],RF1[ss_customer_sk->[c_customer_sk],RF0[s_store_sk->[ss_store_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf62.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf62.groovy deleted file mode 100644 index 9e28fbf7b3..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf62.groovy +++ /dev/null @@ -1,91 +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("ds_rf62") { - 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 - 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 1194 and 1194 + 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; - - ''' - 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.62" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[w_warehouse_sk->[ws_warehouse_sk],RF2[sm_ship_mode_sk->[ws_ship_mode_sk],RF1[web_site_sk->[ws_web_site_sk],RF0[d_date_sk->[ws_ship_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf63.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf63.groovy deleted file mode 100644 index 9b093dafa2..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf63.groovy +++ /dev/null @@ -1,85 +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("ds_rf63") { - 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 - 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; - - ''' - 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.63" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[s_store_sk->[ss_store_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_sk->[ss_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf64.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf64.groovy deleted file mode 100644 index 683de73451..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf64.groovy +++ /dev/null @@ -1,177 +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("ds_rf64") { - 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 - 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; - - ''' - 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.64" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - //assertEquals("RF19[c_first_shipto_date_sk->[d_date_sk],RF18[c_current_addr_sk->[ca_address_sk],RF17[ss_item_sk->[cs_item_sk],RF15[cr_order_number->[cs_order_number],RF16[cr_item_sk->[cs_item_sk],RF14[hd_income_band_sk->[ib_income_band_sk],RF13[c_first_sales_date_sk->[d_date_sk],RF12[c_current_hdemo_sk->[hd_demo_sk],RF11[ss_promo_sk->[p_promo_sk],RF10[hd_income_band_sk->[ib_income_band_sk],RF8[ss_item_sk->[sr_item_sk],RF9[ss_ticket_number->[sr_ticket_number],RF7[c_current_cdemo_sk->[cd_demo_sk],RF6[ss_cdemo_sk->[cd_demo_sk],RF5[d_date_sk->[ss_sold_date_sk],RF4[hd_demo_sk->[ss_hdemo_sk],RF3[ss_customer_sk->[c_customer_sk],RF2[s_store_sk->[ss_store_sk],RF1[ca_address_sk->[ss_addr_sk],RF0[item_sk->[ss_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf65.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf65.groovy deleted file mode 100644 index d475614491..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf65.groovy +++ /dev/null @@ -1,85 +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("ds_rf65") { - 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 - 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; - - ''' - 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.65" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF4[s_store_sk->[ss_store_sk],RF3[i_item_sk->[ss_item_sk],RF2[ss_store_sk->[ss_store_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf66.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf66.groovy deleted file mode 100644 index bfa158d5c0..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf66.groovy +++ /dev/null @@ -1,276 +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("ds_rf66") { - 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 - 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('GREAT EASTERN ', ','), ' LATVIAN') 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_tax * ws_quantity else 0 end) as jan_net - ,sum(case when d_moy = 2 - then ws_net_paid_inc_ship_tax * ws_quantity else 0 end) as feb_net - ,sum(case when d_moy = 3 - then ws_net_paid_inc_ship_tax * ws_quantity else 0 end) as mar_net - ,sum(case when d_moy = 4 - then ws_net_paid_inc_ship_tax * ws_quantity else 0 end) as apr_net - ,sum(case when d_moy = 5 - then ws_net_paid_inc_ship_tax * ws_quantity else 0 end) as may_net - ,sum(case when d_moy = 6 - then ws_net_paid_inc_ship_tax * ws_quantity else 0 end) as jun_net - ,sum(case when d_moy = 7 - then ws_net_paid_inc_ship_tax * ws_quantity else 0 end) as jul_net - ,sum(case when d_moy = 8 - then ws_net_paid_inc_ship_tax * ws_quantity else 0 end) as aug_net - ,sum(case when d_moy = 9 - then ws_net_paid_inc_ship_tax * ws_quantity else 0 end) as sep_net - ,sum(case when d_moy = 10 - then ws_net_paid_inc_ship_tax * ws_quantity else 0 end) as oct_net - ,sum(case when d_moy = 11 - then ws_net_paid_inc_ship_tax * ws_quantity else 0 end) as nov_net - ,sum(case when d_moy = 12 - then ws_net_paid_inc_ship_tax * 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 = 1998 - and t_time between 48821 and 48821+28800 - and sm_carrier in ('GREAT EASTERN','LATVIAN') - 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('GREAT EASTERN ', ','), ' LATVIAN') 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_inc_ship_tax * cs_quantity else 0 end) as jan_net - ,sum(case when d_moy = 2 - then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as feb_net - ,sum(case when d_moy = 3 - then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as mar_net - ,sum(case when d_moy = 4 - then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as apr_net - ,sum(case when d_moy = 5 - then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as may_net - ,sum(case when d_moy = 6 - then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as jun_net - ,sum(case when d_moy = 7 - then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as jul_net - ,sum(case when d_moy = 8 - then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as aug_net - ,sum(case when d_moy = 9 - then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as sep_net - ,sum(case when d_moy = 10 - then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as oct_net - ,sum(case when d_moy = 11 - then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as nov_net - ,sum(case when d_moy = 12 - then cs_net_paid_inc_ship_tax * 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 = 1998 - and t_time between 48821 AND 48821+28800 - and sm_carrier in ('GREAT EASTERN','LATVIAN') - 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; - - ''' - 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.66" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[w_warehouse_sk->[ws_warehouse_sk],RF2[t_time_sk->[ws_sold_time_sk],RF1[d_date_sk->[ws_sold_date_sk],RF0[sm_ship_mode_sk->[ws_ship_mode_sk],RF7[w_warehouse_sk->[cs_warehouse_sk],RF6[t_time_sk->[cs_sold_time_sk],RF5[d_date_sk->[cs_sold_date_sk],RF4[sm_ship_mode_sk->[cs_ship_mode_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf67.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf67.groovy deleted file mode 100644 index aea9206eda..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf67.groovy +++ /dev/null @@ -1,100 +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("ds_rf67") { - 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 - 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 1206 and 1206+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; - - ''' - 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.67" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[s_store_sk->[ss_store_sk],RF1[i_item_sk->[ss_item_sk],RF0[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf68.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf68.groovy deleted file mode 100644 index 9d5b9d48b0..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf68.groovy +++ /dev/null @@ -1,98 +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("ds_rf68") { - 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 - 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 = 8 or - household_demographics.hd_vehicle_count= -1) - and date_dim.d_year in (1998,1998+1,1998+2) - and store.s_city in ('Pleasant Hill','Five Points') - 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; - - ''' - 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.68" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF5[c_current_addr_sk->[ca_address_sk],RF4[ss_customer_sk->[c_customer_sk],RF3[ss_addr_sk->[ca_address_sk],RF2[hd_demo_sk->[ss_hdemo_sk],RF1[s_store_sk->[ss_store_sk],RF0[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf69.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf69.groovy deleted file mode 100644 index b4bea33b9a..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf69.groovy +++ /dev/null @@ -1,103 +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("ds_rf69") { - 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 - 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 ('TX','VA','MI') 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 = 2000 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 = 2000 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 = 2000 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; - - ''' - 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.69" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF7[c_customer_sk->[ss_customer_sk],RF6[d_date_sk->[ss_sold_date_sk],RF5[c_customer_sk->[cs_ship_customer_sk],RF4[d_date_sk->[cs_sold_date_sk],RF3[c_current_cdemo_sk->[cd_demo_sk],RF2[c_customer_sk->[ws_bill_customer_sk],RF1[d_date_sk->[ws_sold_date_sk],RF0[ca_address_sk->[c_current_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf7.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf7.groovy deleted file mode 100644 index fad69d7dda..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf7.groovy +++ /dev/null @@ -1,77 +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("ds_rf7") { - 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 - 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; - - ''' - 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.7" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[i_item_sk->[ss_item_sk],RF2[p_promo_sk->[ss_promo_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[cd_demo_sk->[ss_cdemo_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf70.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf70.groovy deleted file mode 100644 index a059ef6ae9..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf70.groovy +++ /dev/null @@ -1,94 +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("ds_rf70") { - 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 - 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 1213 and 1213+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 1213 and 1213+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; - - ''' - 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.70" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF4[s_store_sk->[ss_store_sk],RF3[d_date_sk->[ss_sold_date_sk],RF2[s_state->[s_state],RF1[s_store_sk->[ss_store_sk],RF0[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf71.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf71.groovy deleted file mode 100644 index 75cecefcdb..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf71.groovy +++ /dev/null @@ -1,96 +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("ds_rf71") { - 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 - 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=1998 - 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=1998 - 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=1998 - ) 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 - ; - - ''' - 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.71" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[i_item_sk->[ws_item_sk, cs_item_sk, ss_item_sk],RF0[d_date_sk->[ws_sold_date_sk],RF1[d_date_sk->[cs_sold_date_sk],RF2[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf72.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf72.groovy deleted file mode 100644 index 92e1660cce..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf72.groovy +++ /dev/null @@ -1,85 +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("ds_rf72") { - 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 - 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 = '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; - - ''' - 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.72" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF10[w_warehouse_sk->[inv_warehouse_sk],RF8[d_date_sk->[inv_date_sk],RF9[cs_item_sk->[inv_item_sk],RF7[d_week_seq->[d_week_seq],RF5[cs_item_sk->[cr_item_sk],RF6[cs_order_number->[cr_order_number],RF4[i_item_sk->[cs_item_sk],RF3[d_date_sk->[cs_ship_date_sk],RF2[cd_demo_sk->[cs_bill_cdemo_sk],RF1[d_date_sk->[cs_sold_date_sk],RF0[hd_demo_sk->[cs_bill_hdemo_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf73.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf73.groovy deleted file mode 100644 index 456b4a8b79..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf73.groovy +++ /dev/null @@ -1,84 +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("ds_rf73") { - 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 - 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; - - ''' - 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.73" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[ss_customer_sk->[c_customer_sk],RF2[s_store_sk->[ss_store_sk],RF1[hd_demo_sk->[ss_hdemo_sk],RF0[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf74.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf74.groovy deleted file mode 100644 index 630152cfd6..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf74.groovy +++ /dev/null @@ -1,117 +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("ds_rf74") { - 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 - 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 - ,stddev_samp(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 - ,stddev_samp(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 2,1,3 -limit 100; - - ''' - 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.74" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[c_customer_sk->[ss_customer_sk],RF0[d_date_sk->[ss_sold_date_sk],RF3[c_customer_sk->[ws_bill_customer_sk],RF2[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf75.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf75.groovy deleted file mode 100644 index 41b8d8d883..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf75.groovy +++ /dev/null @@ -1,126 +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("ds_rf75") { - 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 - 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='Home' - 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='Home' - 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='Home') 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=1999 - 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; - - ''' - 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.75" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[cs_order_number->[cr_order_number],RF3[cs_item_sk->[cr_item_sk],RF1[d_date_sk->[cs_sold_date_sk],RF0[i_item_sk->[cs_item_sk],RF6[ss_ticket_number->[sr_ticket_number],RF7[ss_item_sk->[sr_item_sk],RF5[d_date_sk->[ss_sold_date_sk],RF4[i_item_sk->[ss_item_sk],RF10[ws_order_number->[wr_order_number],RF11[ws_item_sk->[wr_item_sk],RF9[d_date_sk->[ws_sold_date_sk],RF8[i_item_sk->[ws_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf76.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf76.groovy deleted file mode 100644 index fcc064857d..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf76.groovy +++ /dev/null @@ -1,80 +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("ds_rf76") { - 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 - 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; - - ''' - 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.76" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_sk->[ss_item_sk],RF3[d_date_sk->[ws_sold_date_sk],RF2[i_item_sk->[ws_item_sk],RF5[d_date_sk->[cs_sold_date_sk],RF4[i_item_sk->[cs_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf77.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf77.groovy deleted file mode 100644 index 99b6a38b45..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf77.groovy +++ /dev/null @@ -1,164 +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("ds_rf77") { - 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 - 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('1998-08-05' as date) - and (cast('1998-08-05' 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('1998-08-05' as date) - and (cast('1998-08-05' 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('1998-08-05' as date) - and (cast('1998-08-05' 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('1998-08-05' as date) - and (cast('1998-08-05' 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('1998-08-05' as date) - and (cast('1998-08-05' 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('1998-08-05' as date) - and (cast('1998-08-05' 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; - - ''' - 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.77" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[s_store_sk->[ss_store_sk],RF2[d_date_sk->[ss_sold_date_sk],RF1[s_store_sk->[sr_store_sk],RF0[d_date_sk->[sr_returned_date_sk],RF5[d_date_sk->[cs_sold_date_sk],RF4[d_date_sk->[cr_returned_date_sk],RF9[wp_web_page_sk->[ws_web_page_sk],RF8[d_date_sk->[ws_sold_date_sk],RF7[wp_web_page_sk->[wr_web_page_sk],RF6[d_date_sk->[wr_returned_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf78.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf78.groovy deleted file mode 100644 index 6c4549151c..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf78.groovy +++ /dev/null @@ -1,114 +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("ds_rf78") { - 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 - 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 - 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 - 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 - group by d_year, ss_item_sk, ss_customer_sk - ) - select -ss_item_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=2000 -order by - ss_item_sk, - ss_qty desc, ss_wc desc, ss_sp desc, - other_chan_qty, - other_chan_wholesale_cost, - other_chan_sales_price, - ratio -limit 100; - - ''' - 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.78" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[d_date_sk->[ss_sold_date_sk],RF1[d_date_sk->[ws_sold_date_sk],RF0[d_date_sk->[cs_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf79.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf79.groovy deleted file mode 100644 index e45a6a11ba..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf79.groovy +++ /dev/null @@ -1,79 +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("ds_rf79") { - 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 - 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; - - ''' - 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.79" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF3[c_customer_sk->[ss_customer_sk],RF2[s_store_sk->[ss_store_sk],RF1[hd_demo_sk->[ss_hdemo_sk],RF0[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf8.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf8.groovy deleted file mode 100644 index 3765f28342..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf8.groovy +++ /dev/null @@ -1,164 +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("ds_rf8") { - 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 - 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; - - ''' - 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.8" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[s_store_sk->[ss_store_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[c_current_addr_sk->[ca_address_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf80.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf80.groovy deleted file mode 100644 index de392b8bf5..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf80.groovy +++ /dev/null @@ -1,152 +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("ds_rf80") { - 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 - 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('1998-08-28' as date) - and (cast('1998-08-28' 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('1998-08-28' as date) - and (cast('1998-08-28' 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('1998-08-28' as date) - and (cast('1998-08-28' 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; - - ''' - 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.80" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF4[ss_item_sk->[sr_item_sk],RF5[ss_ticket_number->[sr_ticket_number],RF3[s_store_sk->[ss_store_sk],RF2[p_promo_sk->[ss_promo_sk],RF1[i_item_sk->[ss_item_sk],RF0[d_date_sk->[ss_sold_date_sk],RF11[cp_catalog_page_sk->[cs_catalog_page_sk],RF9[cs_item_sk->[cr_item_sk],RF10[cs_order_number->[cr_order_number],RF8[p_promo_sk->[cs_promo_sk],RF7[i_item_sk->[cs_item_sk],RF6[d_date_sk->[cs_sold_date_sk],RF16[ws_item_sk->[wr_item_sk],RF17[ws_order_number->[wr_order_number],RF15[web_site_sk->[ws_web_site_sk],RF14[p_promo_sk->[ws_promo_sk],RF13[i_item_sk->[ws_item_sk],RF12[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf81.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf81.groovy deleted file mode 100644 index 1309fede04..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf81.groovy +++ /dev/null @@ -1,87 +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("ds_rf81") { - 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 - 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; - - ''' - 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.81" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[ca_address_sk->[cr_returning_addr_sk],RF0[d_date_sk->[cr_returned_date_sk],RF3[c_customer_sk->[ctr_customer_sk],RF2[ca_address_sk->[c_current_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf82.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf82.groovy deleted file mode 100644 index 7144fe13c9..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf82.groovy +++ /dev/null @@ -1,73 +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("ds_rf82") { - 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 - 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; - - ''' - 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.82" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[i_item_sk->[ss_item_sk],RF1[d_date_sk->[inv_date_sk],RF0[i_item_sk->[inv_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf83.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf83.groovy deleted file mode 100644 index f7f462819e..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf83.groovy +++ /dev/null @@ -1,123 +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("ds_rf83") { - 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 - 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-06-06','2001-09-02','2001-11-11'))) - 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-06-06','2001-09-02','2001-11-11'))) - 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-06-06','2001-09-02','2001-11-11'))) - 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; - - ''' - 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.83" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF13[item_id->[i_item_id],RF12[cr_item_sk->[i_item_sk],RF11[d_date_sk->[cr_returned_date_sk],RF10[d_date->[d_date],RF9[d_week_seq->[d_week_seq],RF8[item_id->[i_item_id],RF7[i_item_sk->[sr_item_sk],RF6[d_date_sk->[sr_returned_date_sk],RF5[d_date->[d_date],RF4[d_week_seq->[d_week_seq],RF3[wr_item_sk->[i_item_sk],RF2[d_date_sk->[wr_returned_date_sk],RF1[d_date->[d_date],RF0[d_week_seq->[d_week_seq]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf84.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf84.groovy deleted file mode 100644 index 23c0d7a2f1..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf84.groovy +++ /dev/null @@ -1,77 +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("ds_rf84") { - 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 - 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; - - ''' - 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.84" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF4[cd_demo_sk->[sr_cdemo_sk],RF3[c_current_cdemo_sk->[cd_demo_sk],RF2[hd_demo_sk->[c_current_hdemo_sk],RF1[ca_address_sk->[c_current_addr_sk],RF0[ib_income_band_sk->[hd_income_band_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf85.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf85.groovy deleted file mode 100644 index 833ab5491f..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf85.groovy +++ /dev/null @@ -1,140 +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("ds_rf85") { - 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 - 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 = 2000 - 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 = 'M' - and - cd1.cd_marital_status = cd2.cd_marital_status - and - cd1.cd_education_status = '4 yr Degree' - 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 = 'Secondary' - and - cd1.cd_education_status = cd2.cd_education_status - and - ws_sales_price between 50.00 and 100.00 - ) - or - ( - cd1.cd_marital_status = 'W' - 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 ('FL', 'TX', 'DE') - and ws_net_profit between 100 and 200 - ) - or - ( - ca_country = 'United States' - and - ca_state in ('IN', 'ND', 'ID') - and ws_net_profit between 150 and 300 - ) - or - ( - ca_country = 'United States' - and - ca_state in ('MT', 'IL', 'OH') - 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; - - ''' - 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.85" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF9[r_reason_sk->[wr_reason_sk],RF8[wp_web_page_sk->[ws_web_page_sk],RF5[cd_marital_status->[cd_marital_status],RF6[cd_education_status->[cd_education_status],RF7[wr_returning_cdemo_sk->[cd_demo_sk],RF4[wr_refunded_cdemo_sk->[cd_demo_sk],RF3[ca_address_sk->[wr_refunded_addr_sk],RF1[ws_item_sk->[wr_item_sk],RF2[ws_order_number->[wr_order_number],RF0[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf86.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf86.groovy deleted file mode 100644 index b2bc785d82..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf86.groovy +++ /dev/null @@ -1,82 +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("ds_rf86") { - 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 - 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; - - ''' - 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.86" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[i_item_sk->[ws_item_sk],RF0[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf87.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf87.groovy deleted file mode 100644 index 667c04af02..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf87.groovy +++ /dev/null @@ -1,79 +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("ds_rf87") { - 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 - 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 -; - - ''' - 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.87" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[c_customer_sk->[ss_customer_sk],RF0[d_date_sk->[ss_sold_date_sk],RF3[c_customer_sk->[cs_bill_customer_sk],RF2[d_date_sk->[cs_sold_date_sk],RF5[c_customer_sk->[ws_bill_customer_sk],RF4[d_date_sk->[ws_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf88.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf88.groovy deleted file mode 100644 index 590bcd9566..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf88.groovy +++ /dev/null @@ -1,150 +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("ds_rf88") { - 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 - 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 = -1 and household_demographics.hd_vehicle_count<=-1+2) or - (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') 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 = -1 and household_demographics.hd_vehicle_count<=-1+2) or - (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') 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 = -1 and household_demographics.hd_vehicle_count<=-1+2) or - (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') 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 = -1 and household_demographics.hd_vehicle_count<=-1+2) or - (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') 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 = -1 and household_demographics.hd_vehicle_count<=-1+2) or - (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') 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 = -1 and household_demographics.hd_vehicle_count<=-1+2) or - (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') 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 = -1 and household_demographics.hd_vehicle_count<=-1+2) or - (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') 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 = -1 and household_demographics.hd_vehicle_count<=-1+2) or - (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 -; - - ''' - 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.88" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF23[s_store_sk->[ss_store_sk],RF22[hd_demo_sk->[ss_hdemo_sk],RF21[t_time_sk->[ss_sold_time_sk],RF20[s_store_sk->[ss_store_sk],RF19[hd_demo_sk->[ss_hdemo_sk],RF18[t_time_sk->[ss_sold_time_sk],RF17[s_store_sk->[ss_store_sk],RF16[hd_demo_sk->[ss_hdemo_sk],RF15[t_time_sk->[ss_sold_time_sk],RF14[s_store_sk->[ss_store_sk],RF13[hd_demo_sk->[ss_hdemo_sk],RF12[t_time_sk->[ss_sold_time_sk],RF11[s_store_sk->[ss_store_sk],RF10[hd_demo_sk->[ss_hdemo_sk],RF9[t_time_sk->[ss_sold_time_sk],RF8[s_store_sk->[ss_store_sk],RF7[hd_demo_sk->[ss_hdemo_sk],RF6[t_time_sk->[ss_sold_time_sk],RF5[s_store_sk->[ss_store_sk],RF4[hd_demo_sk->[ss_hdemo_sk],RF3[t_time_sk->[ss_sold_time_sk],RF2[s_store_sk->[ss_store_sk],RF1[hd_demo_sk->[ss_hdemo_sk],RF0[t_time_sk->[ss_sold_time_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf89.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf89.groovy deleted file mode 100644 index 1095990910..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf89.groovy +++ /dev/null @@ -1,84 +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("ds_rf89") { - 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 - 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; - - ''' - 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.89" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[s_store_sk->[ss_store_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_sk->[ss_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf9.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf9.groovy deleted file mode 100644 index a57d6f5a84..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf9.groovy +++ /dev/null @@ -1,107 +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("ds_rf9") { - 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 - select case when (select count(*) - from store_sales - where ss_quantity between 1 and 20) > 2972190 - then (select avg(ss_ext_sales_price) - from store_sales - where ss_quantity between 1 and 20) - else (select avg(ss_net_profit) - 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) > 4505785 - then (select avg(ss_ext_sales_price) - from store_sales - where ss_quantity between 21 and 40) - else (select avg(ss_net_profit) - 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) > 1575726 - then (select avg(ss_ext_sales_price) - from store_sales - where ss_quantity between 41 and 60) - else (select avg(ss_net_profit) - 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) > 3188917 - then (select avg(ss_ext_sales_price) - from store_sales - where ss_quantity between 61 and 80) - else (select avg(ss_net_profit) - 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) > 3525216 - then (select avg(ss_ext_sales_price) - from store_sales - where ss_quantity between 81 and 100) - else (select avg(ss_net_profit) - from store_sales - where ss_quantity between 81 and 100) end bucket5 -from reason -where r_reason_sk = 1 -; - - ''' - 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.9" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf90.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf90.groovy deleted file mode 100644 index eae00c6c98..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf90.groovy +++ /dev/null @@ -1,78 +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("ds_rf90") { - 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 - 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; - - ''' - 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.90" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF5[hd_demo_sk->[ws_ship_hdemo_sk],RF4[t_time_sk->[ws_sold_time_sk],RF3[wp_web_page_sk->[ws_web_page_sk],RF2[hd_demo_sk->[ws_ship_hdemo_sk],RF1[t_time_sk->[ws_sold_time_sk],RF0[wp_web_page_sk->[ws_web_page_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf91.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf91.groovy deleted file mode 100644 index 2ad1abb7c2..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf91.groovy +++ /dev/null @@ -1,87 +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("ds_rf91") { - 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 - 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; - - ''' - 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.91" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF5[c_current_addr_sk->[ca_address_sk],RF4[cc_call_center_sk->[cr_call_center_sk],RF3[c_customer_sk->[cr_returning_customer_sk],RF2[d_date_sk->[cr_returned_date_sk],RF1[hd_demo_sk->[c_current_hdemo_sk],RF0[cd_demo_sk->[c_current_cdemo_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf92.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf92.groovy deleted file mode 100644 index ad8dc98d63..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf92.groovy +++ /dev/null @@ -1,86 +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("ds_rf92") { - 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 - 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; - - ''' - 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.92" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[d_date_sk->[ws_sold_date_sk],RF0[i_item_sk->[ws_item_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf93.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf93.groovy deleted file mode 100644 index 5cfc60f9ff..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf93.groovy +++ /dev/null @@ -1,74 +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("ds_rf93") { - 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 - 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; - - ''' - 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.93" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[sr_item_sk->[ss_item_sk],RF2[sr_ticket_number->[ss_ticket_number],RF0[r_reason_sk->[sr_reason_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf94.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf94.groovy deleted file mode 100644 index 4eb9be1526..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf94.groovy +++ /dev/null @@ -1,85 +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("ds_rf94") { - 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 - 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; - - ''' - 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.94" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF4[ws_order_number->[ws_order_number],RF3[ws_order_number->[wr_order_number],RF2[web_site_sk->[ws_web_site_sk],RF1[d_date_sk->[ws_ship_date_sk],RF0[ca_address_sk->[ws_ship_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf95.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf95.groovy deleted file mode 100644 index 97e10cd2fc..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf95.groovy +++ /dev/null @@ -1,88 +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("ds_rf95") { - 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 - 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; - - ''' - 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.95" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF0[ws_order_number->[ws_order_number],RF5[ws_order_number->[wr_order_number],RF4[wr_order_number->[ws_order_number],RF3[web_site_sk->[ws_web_site_sk],RF2[d_date_sk->[ws_ship_date_sk],RF1[ca_address_sk->[ws_ship_addr_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf96.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf96.groovy deleted file mode 100644 index 5253b27a89..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf96.groovy +++ /dev/null @@ -1,72 +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("ds_rf96") { - 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 - 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; - - ''' - 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.96" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF2[s_store_sk->[ss_store_sk],RF1[hd_demo_sk->[ss_hdemo_sk],RF0[t_time_sk->[ss_sold_time_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf97.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf97.groovy deleted file mode 100644 index 65959ecab9..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf97.groovy +++ /dev/null @@ -1,81 +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("ds_rf97") { - 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 - 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; - - ''' - 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.97" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[d_date_sk->[ss_sold_date_sk],RF0[d_date_sk->[cs_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf98.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf98.groovy deleted file mode 100644 index 18dea27438..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf98.groovy +++ /dev/null @@ -1,89 +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("ds_rf98") { - 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 - 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 ('Sports', 'Music', 'Shoes') - and ss_sold_date_sk = d_date_sk - and d_date between cast('2002-05-20' as date) - and (cast('2002-05-20' 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; - - ''' - 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.98" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF1[i_item_sk->[ss_item_sk],RF0[d_date_sk->[ss_sold_date_sk]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf99.groovy b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf99.groovy deleted file mode 100644 index 449777dc01..0000000000 --- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf99.groovy +++ /dev/null @@ -1,90 +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("ds_rf99") { - 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 - 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 1224 and 1224 + 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; - - ''' - 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.99" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF3[w_warehouse_sk->[cs_warehouse_sk],RF2[sm_ship_mode_sk->[cs_ship_mode_sk],RF1[cc_call_center_sk->[cs_call_center_sk],RF0[d_date_sk->[cs_ship_date_sk]", getRuntimeFilters(plan)) -} 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 01339ad191..b7f1bd82b9 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 982675c587..9a0cfca2f6 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 01dde72a31..fb832a894c 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 fd72242989..d7aa4f3c27 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 579bbec53a..468a827a06 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 42048ae5af..b6c2e4ee51 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 0cb8e4d746..234cf5b402 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 99caf2881d..025d3f7e63 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 dd4a3a6823..448f2e7e29 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 e30524cb7b..13de8942c1 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 beaa18a1da..98cdfc2f5f 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 40da05c82e..51f75eb22b 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 c6255361b6..2e1d054af8 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 ae7fe94546..1e4b3f3b10 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 0c4343076b..4dc78abb36 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 ac933df3d2..b277543e1a 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 90760e1bed..866592c9af 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 0e3d425e19..03455050ad 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 6d9a586a78..0d9740de5a 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 2b9dbf9b2f..e6a81b86c5 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 f03d12e37c..0c0788b324 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 7a9b13abf0..4348c38a61 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 8e2866039b..b75340d453 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 fd195b2fc2..722fa5d8ad 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 dd7fcbb76a..b72e9059e4 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 2f13c65bfb..1c6d3947f0 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 274ff8d81d..24790aaf87 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 f7098c9fce..48242ef10c 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 07d6e11893..aacc9603a4 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 c343726a19..09041f90d1 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 913bac5cf4..d68dc6f22a 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 b6e3cd4c8e..f60436160d 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 7ae8737099..887827e210 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 1f0d160cee..76e69f1721 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 fa5698572b..cb4f5df64d 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 15dc721079..6809cd2bba 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 195042684d..8e88307e21 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 6a321164e0..4c32ff4d6a 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 e1f76025a6..77a1698cf3 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 8f40a31916..9218cdfcf0 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 ea6544d1de..385ed61e5a 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 c6c3d26fa7..2ae2219a1b 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 555c62b894..0c7d1219da 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 583e05abbe..2d77f3ccdc 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 b92ded4f03..7a0645e146 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 aa3b9c7790..48f1e30628 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 7a9cc0aefd..bd9b3c9401 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 e6e22c8bfb..1df73679d1 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 b80bf9509f..c7b25c5f6f 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 e19bd84eec..d3e52c9a0e 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 0e9b098716..5514378e79 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 6fcec0f069..ba9e56a256 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 ab2d4a39ae..7e2bdd4437 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 3f4e78b1df..56a3ac15ef 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 6e913ea03e..f0db9cad40 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 a99b6e8fe8..8c5faca626 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 407b828662..ff596f38ff 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 e4eba8d1f7..f15fe6f1c1 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 fc37e4d920..655a23dd2f 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 89c3b0bb9d..8e1f8641b3 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 8eaf4785b6..b0aec67a80 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 8b547f4738..a6a0d2d5b3 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 2f0d379243..36cc7b04b9 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 3532e2a9bf..cab27fe5ea 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 9d0b8326f9..15bae9a45c 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 5d68f707ab..402248ad45 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 410633e8ef..8c66fcb3a2 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 bc3c9e41f6..d2f3cf5b59 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 fd95f1476b..a812155dc6 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 39fd8deccb..83087ec99a 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 d2b3de9dca..75ef23a553 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 fd2ff262e1..a6ad5b4824 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 1640e88e87..0c3615a147 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 d6b7e6dfe8..8fd698189f 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 9d8bf505c3..c00d5f4af3 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 2ebd799f9e..4d72e4e0b0 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 e4c445783c..00a8be07ae 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 7eb8281c71..5f1f6de88e 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 d10748ab42..3db229574b 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 8383634d47..8f688ce8a5 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 251d338098..eb7f22b620 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 2b85ace5b3..62f1e5da81 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 1c18249bb5..ced9441f47 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 f69a62b84c..967dcde901 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 83f7e089b7..1728f27274 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 a41a3713b8..3f9d166d5f 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 7f52ecc420..6be244c464 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 00f76182a9..e4ca97b35d 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 6df493639f..8554e02a7a 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 429fe5821b..bcd4cb3afb 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 69d6d2a522..17e0b6766a 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 98f95d36f0..368452c4ed 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 8fbadee149..516d4e2e04 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 7bdf0b5b74..f931583482 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 677473798d..912ce1bb02 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 8893f0a398..4ceec16552 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 92d0264955..940bfe1ad9 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 @@ -24,6 +24,7 @@ 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_pipeline_task_num=8' sql 'set forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 1b22a20c87..dbef92f6d8 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' 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 f00b957fd6..2f89d7bdf6 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,6 +24,7 @@ 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 forbid_unknown_col_stats=true' sql 'set broadcast_row_count_limit = 30000000' diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q1.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q1.groovy new file mode 100644 index 0000000000..eecb9009b2 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q1.groovy @@ -0,0 +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("q1") { + 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 enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' + + + qt_select """ + explain shape plan + select + l_returnflag, + l_linestatus, + sum(l_quantity) as sum_qty, + sum(l_extendedprice) as sum_base_price, + sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, + sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, + avg(l_quantity) as avg_qty, + avg(l_extendedprice) as avg_price, + avg(l_discount) as avg_disc, + count(*) as count_order + from + lineitem + where + l_shipdate <= date '1998-12-01' - interval '90' day + group by + l_returnflag, + l_linestatus + order by + l_returnflag, + l_linestatus; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf10.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q10.groovy similarity index 73% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf10.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q10.groovy index 0e627ed78b..45481787f0 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf10.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q10.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf10") { +suite("q10") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -28,8 +28,11 @@ suite("rf10") { sql 'SET enable_pipeline_engine = true' sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' - String query = """ - explain physical plan +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' + qt_select """ + explain shape plan select c_custkey, c_name, @@ -63,26 +66,4 @@ sql 'set be_number_for_test=3' revenue desc limit 20; """ - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - // prune 1 RF - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h10 before prune:\n" + plan1) - log.info("tcph_sf1000 h10 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - - assertEquals(3, count1) - assertEquals(2, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf11.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q11.groovy similarity index 73% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf11.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q11.groovy index 3e38c5fd95..d3e58acace 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf11.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q11.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf11") { +suite("q11") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -27,11 +27,14 @@ suite("rf11") { sql 'set exec_mem_limit=21G' sql 'SET enable_pipeline_engine = true' sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - def String query = """ - explain physical plan + qt_select """ + explain shape plan select ps_partkey, sum(ps_supplycost * ps_availqty) as value @@ -60,25 +63,4 @@ sql 'set be_number_for_test=3' order by value desc; """ - - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - int count2 = getRuntimeFilterCountFromPlan(plan2) - - log.info("tcph_sf1000 h11 before prune:\n" + plan1) - log.info("tcph_sf1000 h11 after prune:\n" + plan2) - - assertEquals(4, count1) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf12.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q12.groovy similarity index 73% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf12.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q12.groovy index 10fa1cafd6..7c83ed5b00 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf12.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q12.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf12") { +suite("q12") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -27,9 +27,11 @@ suite("rf12") { sql 'set exec_mem_limit=21G' sql 'SET enable_pipeline_engine = true' sql 'set be_number_for_test=3' - - def query = """ - explain physical plan +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' + qt_select """ + explain shape plan select l_shipmode, sum(case @@ -59,28 +61,4 @@ sql 'set be_number_for_test=3' order by l_shipmode; """ - - - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h12 before prune:\n" + plan1) - log.info("tcph_sf1000 h12 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) - assertEquals(1, count1) - - } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf13.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q13.groovy similarity index 71% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf13.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q13.groovy index c384aad246..305a891b6a 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf13.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q13.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf13") { +suite("q13") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -31,8 +31,11 @@ suite("rf13") { sql 'set be_number_for_test=3' - def query = """ - explain physical plan +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' + qt_select """ + explain shape plan select c_count, count(*) as custdist @@ -54,26 +57,4 @@ sql 'set be_number_for_test=3' custdist desc, c_count desc; """ - - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h13 before prune:\n" + plan1) - log.info("tcph_sf1000 h13 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(0, count2) - assertEquals(1, count1) - } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf14.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q14.groovy similarity index 70% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf14.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q14.groovy index 873ca3f905..c5a856bec7 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf14.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q14.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf14") { +suite("q14") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -28,8 +28,11 @@ suite("rf14") { sql 'SET enable_pipeline_engine = true' sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' - def query = """ - explain physical plan +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' + qt_select """ + explain shape plan select 100.00 * sum(case when p_type like 'PROMO%' @@ -44,25 +47,4 @@ sql 'set be_number_for_test=3' and l_shipdate >= date '1995-09-01' and l_shipdate < date '1995-09-01' + interval '1' month; """ - - - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h14 before prune:\n" + plan1) - log.info("tcph_sf1000 h14 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf15.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q15.groovy similarity index 70% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf15.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q15.groovy index 8c795b19cc..5d8046e175 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf15.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q15.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf15") { +suite("q15") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -31,9 +31,12 @@ suite("rf15") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - def query = """ - explain physical plan + qt_select """ + explain shape plan select s_suppkey, s_name, @@ -54,26 +57,4 @@ sql 'set be_number_for_test=3' order by s_suppkey; """ - - - - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h15 before prune:\n" + plan1) - log.info("tcph_sf1000 h15 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf16.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q16.groovy similarity index 74% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf16.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q16.groovy index 896c66c223..c51c44f5c8 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf16.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q16.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf16") { +suite("q16") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -31,9 +31,12 @@ suite("rf16") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - def query = """ - explain physical plan + qt_select """ + explain shape plan select p_brand, p_type, @@ -65,23 +68,4 @@ sql 'set be_number_for_test=3' p_type, p_size; """ - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h16 before prune:\n" + plan1) - log.info("tcph_sf1000 h16 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf17.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q17.groovy similarity index 71% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf17.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q17.groovy index cc2b4786d4..ecd5e1aea6 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf17.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q17.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf17") { +suite("q17") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -31,9 +31,12 @@ suite("rf17") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - def query = """ - explain physical plan + qt_select """ + explain shape plan select sum(l_extendedprice) / 7.0 as avg_yearly from @@ -52,23 +55,4 @@ sql 'set be_number_for_test=3' l_partkey = p_partkey ); """ - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h17 before prune:\n" + plan1) - log.info("tcph_sf1000 h17 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf18.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q18.groovy similarity index 75% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf18.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q18.groovy index 07c38e8396..298bd134bd 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf18.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q18.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf18") { +suite("q18") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -31,9 +31,12 @@ suite("rf18") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - def query = """ - explain physical plan + qt_select """ + explain shape plan select c_name, c_custkey, @@ -68,23 +71,4 @@ sql 'set be_number_for_test=3' o_orderdate limit 100; """ - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h18 before prune:\n" + plan1) - log.info("tcph_sf1000 h18 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf19.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.groovy similarity index 79% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf19.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.groovy index 5ca7434c24..fdf6029fbc 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf19.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf19") { +suite("q19") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" @@ -32,9 +32,12 @@ suite("rf19") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - def query = """ - explain physical plan + qt_select """ + explain shape plan select sum(l_extendedprice* (1 - l_discount)) as revenue from @@ -72,23 +75,4 @@ sql 'set be_number_for_test=3' ); """ - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h19 before prune:\n" + plan1) - log.info("tcph_sf1000 h19 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf2.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q2.groovy similarity index 74% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf2.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q2.groovy index 0a53ee8795..7faffd04f5 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf2.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q2.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf2") { +suite("q2") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -28,19 +28,15 @@ suite("rf2") { sql 'SET enable_pipeline_engine = true' sql 'set parallel_pipeline_task_num=8' - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - sql 'set be_number_for_test=3' +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - String query = """ - explain physical plan + qt_select """ + explain shape plan select s_acctbal, s_name, @@ -86,17 +82,4 @@ suite("rf2") { p_partkey limit 100; """ - sql "set enable_runtime_filter_prune=false" - String plan1 = sql("${query}") - int count1 = getRuntimeFilterCountFromPlan(plan1) - - sql "set enable_runtime_filter_prune=true" - String plan2 = sql("${query}") - - log.info("tcph_sf1000 h2 before prune:\n" + plan1) - log.info("tcph_sf1000 h2 after prune:\n" + plan2) - int count2 = getRuntimeFilterCountFromPlan(plan2) - - assertEquals(4, count1) - assertEquals(4, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20-rewrite.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20-rewrite.groovy new file mode 100644 index 0000000000..eb2f5b3852 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20-rewrite.groovy @@ -0,0 +1,69 @@ +/* + * 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("q20-rewrite") { + 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 runtime_filter_mode='GLOBAL'" + sql 'set parallel_pipeline_task_num=8' + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan +select +s_name, s_address +from +supplier left semi join +( + select * from + ( + select l_partkey,l_suppkey, 0.5 * sum(l_quantity) as l_q + from lineitem + where l_shipdate >= date '1994-01-01' + and l_shipdate < date '1994-01-01' + interval '1' year + group by l_partkey,l_suppkey + ) t2 join + ( + select ps_partkey, ps_suppkey, ps_availqty + from partsupp left semi join part + on ps_partkey = p_partkey and p_name like 'forest%' + ) t1 + on t2.l_partkey = t1.ps_partkey and t2.l_suppkey = t1.ps_suppkey + and t1.ps_availqty > t2.l_q +) t3 +on s_suppkey = t3.ps_suppkey +join nation +where s_nationkey = n_nationkey + and n_name = 'CANADA' +order by s_name +; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf20.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20.groovy similarity index 77% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf20.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20.groovy index 7fd96509db..1b01916442 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf20.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q20.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf20") { +suite("q20") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" @@ -32,9 +32,12 @@ suite("rf20") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - def query = """ - explain physical plan + qt_select """ + explain shape plan select s_name, s_address @@ -73,23 +76,4 @@ sql 'set be_number_for_test=3' order by s_name; """ - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h20 before prune:\n" + plan1) - log.info("tcph_sf1000 h20 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf21.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q21.groovy similarity index 77% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf21.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q21.groovy index 1fa0970752..349a0bba8e 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf21.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q21.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf21") { +suite("q21") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -31,9 +31,12 @@ suite("rf21") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - def query = """ - explain physical plan + qt_select """ + explain shape plan select s_name, count(*) as numwait @@ -75,23 +78,4 @@ sql 'set be_number_for_test=3' s_name limit 100; """ - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h21 before prune:\n" + plan1) - log.info("tcph_sf1000 h21 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf22.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q22.groovy similarity index 78% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf22.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q22.groovy index 30c31adc34..4a680a13fa 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf22.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q22.groovy @@ -31,9 +31,12 @@ suite("q22") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - def query = """ - explain physical plan + qt_select """ + explain shape plan select cntrycode, count(*) as numcust, @@ -72,23 +75,4 @@ sql 'set be_number_for_test=3' order by cntrycode; """ - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h22 before prune:\n" + plan1) - log.info("tcph_sf1000 h22 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf3.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q3.groovy similarity index 72% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf3.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q3.groovy index 882c6c5e1e..68ffe43441 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf3.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q3.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf3") { +suite("q3") { String db = context.config.getDbNameByFile(new File(context.file.parent)) // db = "tpch" sql "use ${db}" @@ -32,10 +32,12 @@ suite("rf3") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - - String query = """ - explain physical plan + qt_select """ + explain shape plan select l_orderkey, sum(l_extendedprice * (1 - l_discount)) as revenue, @@ -60,24 +62,4 @@ sql 'set be_number_for_test=3' o_orderdate limit 10; """ - - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h3 before prune:\n" + plan1) - log.info("tcph_sf1000 h3 before prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf4.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q4.groovy similarity index 70% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf4.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q4.groovy index d947f4afb0..a5820c6a58 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf4.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q4.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf4") { +suite("q4") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -25,14 +25,17 @@ suite("rf4") { sql "set runtime_filter_mode='GLOBAL'" sql 'set exec_mem_limit=21G' sql 'SET enable_pipeline_engine = true' - sql 'set be_number_for_test=3' + sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' sql 'set parallel_pipeline_task_num=8' - String query = """ - explain physical plan + qt_select """ + explain shape plan select o_orderpriority, count(*) as order_count @@ -55,25 +58,4 @@ suite("rf4") { order by o_orderpriority; """ - - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h4 before prune:\n" + plan1) - log.info("tcph_sf1000 h4 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf5.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q5.groovy similarity index 72% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf5.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q5.groovy index 017d1ce298..63266cc181 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf5.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q5.groovy @@ -17,14 +17,7 @@ * under the License. */ -suite("rf5") { - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} +suite("q5") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -35,12 +28,15 @@ suite("rf5") { sql 'SET enable_pipeline_engine = true' sql 'set parallel_pipeline_task_num=8' - sql 'set be_number_for_test=3' - sql 'set enable_runtime_filter_prune=false' + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - String query = """ - explain physical plan + qt_select """ + explain shape plan select n_name, sum(l_extendedprice * (1 - l_discount)) as revenue @@ -66,15 +62,4 @@ suite("rf5") { order by revenue desc; """ - String plan1 = sql "${query}" - - - sql 'set enable_runtime_filter_prune=true' - - String plan2 = sql "${query}" - log.info("tcph_sf1000 h5 before prune:\n" + plan1) - log.info("tcph_sf1000 h5 after prune:\n" + plan2) - - assertEquals(6, getRuntimeFilterCountFromPlan(plan1)) - assertEquals(4, getRuntimeFilterCountFromPlan(plan2)) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q6.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q6.groovy new file mode 100644 index 0000000000..1c10ea4e92 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q6.groovy @@ -0,0 +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("q6") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + sum(l_extendedprice * l_discount) as revenue + from + lineitem + where + l_shipdate >= date '1994-01-01' + and l_shipdate < date '1994-01-01' + interval '1' year + and l_discount between .06 - 0.01 and .06 + 0.01 + and l_quantity < 24; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf7.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.groovy similarity index 76% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf7.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.groovy index 5e1204fc29..2179fbebbb 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf7.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf7") { +suite("q7") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -31,9 +31,12 @@ suite("rf7") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - String query = """ - explain physical plan + qt_select """ + explain shape plan select supp_nation, cust_nation, @@ -74,26 +77,4 @@ sql 'set be_number_for_test=3' cust_nation, l_year; """ - - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h7 before prune:\n" + plan1) - log.info("tcph_sf1000 h7 after prune:\n" + plan2) - - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(5, count2, "after prune") - assertEquals(5, count1, "before prune") - } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf8.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q8.groovy similarity index 75% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf8.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q8.groovy index 565d4cbb40..99f7e245f3 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf8.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q8.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf8") { +suite("q8") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -31,9 +31,12 @@ suite("rf8") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - String query = """ - explain physical plan + qt_select """ + explain shape plan select o_year, sum(case @@ -72,26 +75,4 @@ sql 'set be_number_for_test=3' order by o_year; """ - - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - // prune 1 RF - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - log.info "before prune, rf count = " + count1 - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h8 before prune:\n" + plan1) - log.info("tcph_sf1000 h8 after prune:\n" + plan2) - - assertEquals(7, count1) - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(count1 - 1, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf9.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q9.groovy similarity index 73% rename from regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf9.groovy rename to regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q9.groovy index be978a6017..eca2b0a314 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/rf9.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q9.groovy @@ -17,7 +17,7 @@ * under the License. */ -suite("rf9") { +suite("q9") { String db = context.config.getDbNameByFile(new File(context.file.parent)) sql "use ${db}" sql 'set enable_nereids_planner=true' @@ -31,9 +31,12 @@ suite("rf9") { sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=false' - String query = """ - explain physical plan + qt_select """ + explain shape plan select nation, o_year, @@ -67,25 +70,4 @@ sql 'set be_number_for_test=3' nation, o_year desc; """ - def getRuntimeFilterCountFromPlan = { plan -> { - int count = 0 - plan.eachMatch("RF\\d+\\[") { - ch -> count ++ - } - return count - }} - // prune 4 RF - sql "set enable_runtime_filter_prune=false" - String plan1 = sql "${query}" - int count1 = getRuntimeFilterCountFromPlan(plan1) - sql "set enable_runtime_filter_prune=true" - String plan2 = sql "${query}" - - log.info("tcph_sf1000 h9 before prune:\n" + plan1) - log.info("tcph_sf1000 h9 after prune:\n" + plan2) - - assertEquals(6, count1) - assertEquals(6, getRuntimeFilterCountFromPlan(plan1)) - int count2 = getRuntimeFilterCountFromPlan(plan2) - assertEquals(2, count2) } diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf1.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf1.groovy deleted file mode 100644 index 81c2b9ca1f..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf1.groovy +++ /dev/null @@ -1,96 +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_rf1") { - 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 - -- 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. - -select - l_returnflag, - l_linestatus, - sum(l_quantity) as sum_qty, - sum(l_extendedprice) as sum_base_price, - sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, - sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, - avg(l_quantity) as avg_qty, - avg(l_extendedprice) as avg_price, - avg(l_discount) as avg_disc, - count(*) as count_order -from - lineitem -where - l_shipdate <= date '1998-12-01' - interval '90' day -group by - l_returnflag, - l_linestatus -order by - l_returnflag, - l_linestatus; - - ''' - 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.1" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf10.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf10.groovy deleted file mode 100644 index e92e31dfef..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf10.groovy +++ /dev/null @@ -1,108 +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_rf10") { - 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 - -- 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. - -select - c_custkey, - c_name, - sum(l_extendedprice * (1 - l_discount)) as revenue, - c_acctbal, - n_name, - c_address, - c_phone, - c_comment -from - customer, - orders, - lineitem, - nation -where - c_custkey = o_custkey - and l_orderkey = o_orderkey - and o_orderdate >= date '1993-10-01' - and o_orderdate < date '1993-10-01' + interval '3' month - and l_returnflag = 'R' - and c_nationkey = n_nationkey -group by - c_custkey, - c_name, - c_acctbal, - c_phone, - n_name, - c_address, - c_comment -order by - revenue desc -limit 20; - - - ''' - 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.10" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF2[o_orderkey->[l_orderkey],RF1[n_nationkey->[c_nationkey],RF0[o_custkey->[c_custkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf11.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf11.groovy deleted file mode 100644 index e272dbb2a6..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf11.groovy +++ /dev/null @@ -1,101 +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_rf11") { - 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 - -- 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. - -select - ps_partkey, - sum(ps_supplycost * ps_availqty) as value -from - partsupp, - supplier, - nation -where - ps_suppkey = s_suppkey - and s_nationkey = n_nationkey - and n_name = 'GERMANY' -group by - ps_partkey having - sum(ps_supplycost * ps_availqty) > ( - select - sum(ps_supplycost * ps_availqty) * 0.000002 - from - partsupp, - supplier, - nation - where - ps_suppkey = s_suppkey - and s_nationkey = n_nationkey - and n_name = 'GERMANY' - ) -order by - value desc; - ''' - 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.11" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF3[s_suppkey->[ps_suppkey],RF2[n_nationkey->[s_nationkey],RF1[s_suppkey->[ps_suppkey],RF0[n_nationkey->[s_nationkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf12.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf12.groovy deleted file mode 100644 index 66866e1a00..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf12.groovy +++ /dev/null @@ -1,103 +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_rf12") { - 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 - -- 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. - -select - l_shipmode, - sum(case - when o_orderpriority = '1-URGENT' - or o_orderpriority = '2-HIGH' - then 1 - else 0 - end) as high_line_count, - sum(case - when o_orderpriority <> '1-URGENT' - and o_orderpriority <> '2-HIGH' - then 1 - else 0 - end) as low_line_count -from - orders, - lineitem -where - o_orderkey = l_orderkey - and l_shipmode in ('MAIL', 'SHIP') - and l_commitdate < l_receiptdate - and l_shipdate < l_commitdate - and l_receiptdate >= date '1994-01-01' - and l_receiptdate < date '1994-01-01' + interval '1' year -group by - l_shipmode -order by - l_shipmode; - - ''' - 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.12" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF0[l_orderkey->[o_orderkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf13.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf13.groovy deleted file mode 100644 index 1820786da0..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf13.groovy +++ /dev/null @@ -1,95 +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_rf13") { - 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 - -- 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. - -select - c_count, - count(*) as custdist -from - ( - select - c_custkey, - count(o_orderkey) as c_count - from - customer left outer join orders on - c_custkey = o_custkey - and o_comment not like '%special%requests%' - group by - c_custkey - ) as c_orders -group by - c_count -order by - custdist desc, - c_count desc; - - ''' - 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.13" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF0[c_custkey->[o_custkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf14.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf14.groovy deleted file mode 100644 index 58ed949bd1..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf14.groovy +++ /dev/null @@ -1,88 +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_rf14") { - 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 - -- 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. - -select - 100.00 * sum(case - when p_type like 'PROMO%' - then l_extendedprice * (1 - l_discount) - else 0 - end) / sum(l_extendedprice * (1 - l_discount)) as promo_revenue -from - lineitem, - part -where - l_partkey = p_partkey - and l_shipdate >= date '1995-09-01' - and l_shipdate < date '1995-09-01' + interval '1' month; - - ''' - 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.14" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF0[l_partkey->[p_partkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf15.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf15.groovy deleted file mode 100644 index 7f795350b8..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf15.groovy +++ /dev/null @@ -1,94 +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_rf15") { - 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 - -- 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. - -select - s_suppkey, - s_name, - s_address, - s_phone, - total_revenue -from - supplier, - revenue0 -where - s_suppkey = supplier_no - and total_revenue = ( - select - max(total_revenue) - from - revenue0 - ) -order by - s_suppkey; - - ''' - 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.15" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF0[supplier_no->[s_suppkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf16.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf16.groovy deleted file mode 100644 index c2c9364d33..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf16.groovy +++ /dev/null @@ -1,105 +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_rf16") { - 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 - -- 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. - -select - p_brand, - p_type, - p_size, - count(distinct ps_suppkey) as supplier_cnt -from - partsupp, - part -where - p_partkey = ps_partkey - and p_brand <> 'Brand#45' - and p_type not like 'MEDIUM POLISHED%' - and p_size in (49, 14, 23, 45, 19, 3, 36, 9) - and ps_suppkey not in ( - select - s_suppkey - from - supplier - where - s_comment like '%Customer%Complaints%' - ) -group by - p_brand, - p_type, - p_size -order by - supplier_cnt desc, - p_brand, - p_type, - p_size; - - ''' - 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.16" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF0[p_partkey->[ps_partkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf17.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf17.groovy deleted file mode 100644 index 61039d3d54..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf17.groovy +++ /dev/null @@ -1,94 +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_rf17") { - 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 - -- 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. - --- Modified - -select - sum(l_extendedprice) / 7.0 as avg_yearly -from - lineitem, - part -where - p_partkey = l_partkey - and p_brand = 'Brand#23' - and p_container = 'MED BOX' - and l_quantity < ( - select - 0.2 * avg(l_quantity) - from - lineitem - where - l_partkey = p_partkey - ); - - ''' - 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.17" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF0[p_partkey->[l_partkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf18.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf18.groovy deleted file mode 100644 index 2ba80c7caf..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf18.groovy +++ /dev/null @@ -1,109 +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_rf18") { - 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 - -- 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. - -select - c_name, - c_custkey, - o_orderkey, - o_orderdate, - o_totalprice, - sum(l_quantity) -from - customer, - orders, - lineitem -where - o_orderkey in ( - select - l_orderkey - from - lineitem - group by - l_orderkey having - sum(l_quantity) > 300 - ) - and c_custkey = o_custkey - and o_orderkey = l_orderkey -group by - c_name, - c_custkey, - o_orderkey, - o_orderdate, - o_totalprice -order by - o_totalprice desc, - o_orderdate -limit 100; - - - ''' - 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.18" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF2[o_orderkey->[l_orderkey],RF1[o_custkey->[c_custkey],RF0[l_orderkey->[o_orderkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf19.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf19.groovy deleted file mode 100644 index d49e529790..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf19.groovy +++ /dev/null @@ -1,110 +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_rf19") { - 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 - -- 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. - -select - sum(l_extendedprice* (1 - l_discount)) as revenue -from - lineitem, - part -where - ( - p_partkey = l_partkey - and p_brand = 'Brand#12' - and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') - and l_quantity >= 1 and l_quantity <= 1 + 10 - and p_size between 1 and 5 - and l_shipmode in ('AIR', 'AIR REG') - and l_shipinstruct = 'DELIVER IN PERSON' - ) - or - ( - p_partkey = l_partkey - and p_brand = 'Brand#23' - and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') - and l_quantity >= 10 and l_quantity <= 10 + 10 - and p_size between 1 and 10 - and l_shipmode in ('AIR', 'AIR REG') - and l_shipinstruct = 'DELIVER IN PERSON' - ) - or - ( - p_partkey = l_partkey - and p_brand = 'Brand#34' - and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') - and l_quantity >= 20 and l_quantity <= 20 + 10 - and p_size between 1 and 15 - and l_shipmode in ('AIR', 'AIR REG') - and l_shipinstruct = 'DELIVER IN PERSON' - ); - - ''' - 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.19" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF0[p_partkey->[l_partkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf2.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf2.groovy deleted file mode 100644 index 2a014e67d1..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf2.groovy +++ /dev/null @@ -1,101 +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_rf2") { - 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 -select - s_acctbal, - s_name, - n_name, - p_partkey, - p_mfgr, - s_address, - s_phone, - s_comment -from - part, - supplier, - partsupp, - nation, - region -where - p_partkey = ps_partkey - and s_suppkey = ps_suppkey - and p_size = 15 - and p_type like '%BRASS' - and s_nationkey = n_nationkey - and n_regionkey = r_regionkey - and r_name = 'EUROPE' - and ps_supplycost = ( - select - min(ps_supplycost) - from - partsupp, - supplier, - nation, - region - where - p_partkey = ps_partkey - and s_suppkey = ps_suppkey - and s_nationkey = n_nationkey - and n_regionkey = r_regionkey - and r_name = 'EUROPE' -) -order by - s_acctbal desc, - n_name, - s_name, - p_partkey -limit 100; - ''' - 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.2" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF3[s_suppkey->[ps_suppkey],RF2[p_partkey->[ps_partkey],RF1[n_nationkey->[s_nationkey],RF0[r_regionkey->[n_regionkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf20.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf20.groovy deleted file mode 100644 index d88543c1ff..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf20.groovy +++ /dev/null @@ -1,112 +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_rf20") { - 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 - -- 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. - -select - s_name, - s_address -from - supplier, - nation -where - s_suppkey in ( - select - ps_suppkey - from - partsupp - where - ps_partkey in ( - select - p_partkey - from - part - where - p_name like 'forest%' - ) - and ps_availqty > ( - select - 0.5 * sum(l_quantity) - from - lineitem - where - l_partkey = ps_partkey - and l_suppkey = ps_suppkey - and l_shipdate >= date '1994-01-01' - and l_shipdate < date '1994-01-01' + interval '1' year - ) - ) - and s_nationkey = n_nationkey - and n_name = 'CANADA' -order by - s_name; - - ''' - 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.20" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF4[s_suppkey->[ps_suppkey],RF2[ps_partkey->[l_partkey],RF3[ps_suppkey->[l_suppkey],RF1[p_partkey->[ps_partkey],RF0[n_nationkey->[s_nationkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf21.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf21.groovy deleted file mode 100644 index 4cded7417f..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf21.groovy +++ /dev/null @@ -1,114 +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_rf21") { - 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 - -- 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. - -select - s_name, - count(*) as numwait -from - supplier, - lineitem l1, - orders, - nation -where - s_suppkey = l1.l_suppkey - and o_orderkey = l1.l_orderkey - and o_orderstatus = 'F' - and l1.l_receiptdate > l1.l_commitdate - and exists ( - select - * - from - lineitem l2 - where - l2.l_orderkey = l1.l_orderkey - and l2.l_suppkey <> l1.l_suppkey - ) - and not exists ( - select - * - from - lineitem l3 - where - l3.l_orderkey = l1.l_orderkey - and l3.l_suppkey <> l1.l_suppkey - and l3.l_receiptdate > l3.l_commitdate - ) - and s_nationkey = n_nationkey - and n_name = 'SAUDI ARABIA' -group by - s_name -order by - numwait desc, - s_name -limit 100; - ''' - 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.21" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF4[l_orderkey->[l_orderkey],RF3[l_orderkey->[o_orderkey],RF2[l_orderkey->[l_orderkey],RF1[s_suppkey->[l_suppkey],RF0[n_nationkey->[s_nationkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf22.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf22.groovy deleted file mode 100644 index 54016fe020..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf22.groovy +++ /dev/null @@ -1,112 +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_rf22") { - 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 - -- 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. - -select - cntrycode, - count(*) as numcust, - sum(c_acctbal) as totacctbal -from - ( - select - substring(c_phone, 1, 2) as cntrycode, - c_acctbal - from - customer - where - substring(c_phone, 1, 2) in - ('13', '31', '23', '29', '30', '18', '17') - and c_acctbal > ( - select - avg(c_acctbal) - from - customer - where - c_acctbal > 0.00 - and substring(c_phone, 1, 2) in - ('13', '31', '23', '29', '30', '18', '17') - ) - and not exists ( - select - * - from - orders - where - o_custkey = c_custkey - ) - ) as custsale -group by - cntrycode -order by - cntrycode; - - ''' - 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.22" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF0[c_custkey->[o_custkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf3.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf3.groovy deleted file mode 100644 index 924d8b8c9b..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf3.groovy +++ /dev/null @@ -1,98 +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_rf3") { - 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 - -- 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. - -select - l_orderkey, - sum(l_extendedprice * (1 - l_discount)) as revenue, - o_orderdate, - o_shippriority -from - customer, - orders, - lineitem -where - c_mktsegment = 'BUILDING' - and c_custkey = o_custkey - and l_orderkey = o_orderkey - and o_orderdate < date '1995-03-15' - and l_shipdate > date '1995-03-15' -group by - l_orderkey, - o_orderdate, - o_shippriority -order by - revenue desc, - o_orderdate -limit 10; - - ''' - 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.3" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF1[o_orderkey->[l_orderkey],RF0[c_custkey->[o_custkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf4.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf4.groovy deleted file mode 100644 index fcf125ce4b..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf4.groovy +++ /dev/null @@ -1,96 +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_rf4") { - 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 - -- 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. - -select - o_orderpriority, - count(*) as order_count -from - orders -where - o_orderdate >= date '1993-07-01' - and o_orderdate < date '1993-07-01' + interval '3' month - and exists ( - select - * - from - lineitem - where - l_orderkey = o_orderkey - and l_commitdate < l_receiptdate - ) -group by - o_orderpriority -order by - o_orderpriority; - - ''' - 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.4" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("RF0[o_orderkey->[l_orderkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf5.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf5.groovy deleted file mode 100644 index 7972f45010..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf5.groovy +++ /dev/null @@ -1,99 +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_rf5") { - 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 - -- 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. - -select - n_name, - sum(l_extendedprice * (1 - l_discount)) as revenue -from - customer, - orders, - lineitem, - supplier, - nation, - region -where - c_custkey = o_custkey - and l_orderkey = o_orderkey - and l_suppkey = s_suppkey - and c_nationkey = s_nationkey - and s_nationkey = n_nationkey - and n_regionkey = r_regionkey - and r_name = 'ASIA' - and o_orderdate >= date '1994-01-01' - and o_orderdate < date '1994-01-01' + interval '1' year -group by - n_name -order by - revenue desc; - - ''' - 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.5" - // File file = new File(outFile) - - assertEquals("RF4[c_nationkey->[s_nationkey],RF5[c_custkey->[o_custkey],RF3[s_suppkey->[l_suppkey],RF2[o_orderkey->[l_orderkey],RF1[n_nationkey->[s_nationkey],RF0[r_regionkey->[n_regionkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf6.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf6.groovy deleted file mode 100644 index 9aa9046018..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf6.groovy +++ /dev/null @@ -1,84 +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_rf6") { - 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 - -- 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. - -select - sum(l_extendedprice * l_discount) as revenue -from - lineitem -where - l_shipdate >= date '1994-01-01' - and l_shipdate < date '1994-01-01' + interval '1' year - and l_discount between .06 - 0.01 and .06 + 0.01 - and l_quantity < 24; - - ''' - 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.6" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - assertEquals("", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf7.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf7.groovy deleted file mode 100644 index b602c986f8..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf7.groovy +++ /dev/null @@ -1,114 +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_rf7") { - 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 - -- 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. - -select - supp_nation, - cust_nation, - l_year, - sum(volume) as revenue -from - ( - select - n1.n_name as supp_nation, - n2.n_name as cust_nation, - extract(year from l_shipdate) as l_year, - l_extendedprice * (1 - l_discount) as volume - from - supplier, - lineitem, - orders, - customer, - nation n1, - nation n2 - where - s_suppkey = l_suppkey - and o_orderkey = l_orderkey - and c_custkey = o_custkey - and s_nationkey = n1.n_nationkey - and c_nationkey = n2.n_nationkey - and ( - (n1.n_name = 'FRANCE' and n2.n_name = 'GERMANY') - or (n1.n_name = 'GERMANY' and n2.n_name = 'FRANCE') - ) - and l_shipdate between date '1995-01-01' and date '1996-12-31' - ) as shipping -group by - supp_nation, - cust_nation, - l_year -order by - supp_nation, - cust_nation, - l_year; - ''' - 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.7" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF4[o_orderkey->[l_orderkey],RF3[s_suppkey->[l_suppkey],RF2[n_nationkey->[s_nationkey],RF1[c_custkey->[o_custkey],RF0[n_nationkey->[c_nationkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf8.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf8.groovy deleted file mode 100644 index 10027247a7..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf8.groovy +++ /dev/null @@ -1,114 +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_rf8") { - 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 - -- 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. - -select - o_year, - sum(case - when nation = 'BRAZIL' then volume - else 0 - end) / sum(volume) as mkt_share -from - ( - select - extract(year from o_orderdate) as o_year, - l_extendedprice * (1 - l_discount) as volume, - n2.n_name as nation - from - part, - supplier, - lineitem, - orders, - customer, - nation n1, - nation n2, - region - where - p_partkey = l_partkey - and s_suppkey = l_suppkey - and l_orderkey = o_orderkey - and o_custkey = c_custkey - and c_nationkey = n1.n_nationkey - and n1.n_regionkey = r_regionkey - and r_name = 'AMERICA' - and s_nationkey = n2.n_nationkey - and o_orderdate between date '1995-01-01' and date '1996-12-31' - and p_type = 'ECONOMY ANODIZED STEEL' - ) as all_nations -group by - o_year -order by - o_year; - - ''' - 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.8" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF6[n_nationkey->[s_nationkey],RF5[l_suppkey->[s_suppkey],RF4[c_custkey->[o_custkey],RF3[l_orderkey->[o_orderkey],RF2[p_partkey->[l_partkey],RF1[n_nationkey->[c_nationkey],RF0[r_regionkey->[n_regionkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf9.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf9.groovy deleted file mode 100644 index 913687fe84..0000000000 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf9.groovy +++ /dev/null @@ -1,108 +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_rf9") { - 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 - -- 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. - -select - nation, - o_year, - sum(amount) as sum_profit -from - ( - select - n_name as nation, - extract(year from o_orderdate) as o_year, - l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount - from - part, - supplier, - lineitem, - partsupp, - orders, - nation - where - s_suppkey = l_suppkey - and ps_suppkey = l_suppkey - and ps_partkey = l_partkey - and p_partkey = l_partkey - and o_orderkey = l_orderkey - and s_nationkey = n_nationkey - and p_name like '%green%' - ) as profit -group by - nation, - o_year -order by - nation, - o_year desc; - - ''' - 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.9" - // File file = new File(outFile) - // file.write(getRuntimeFilters(plan)) - - assertEquals("RF4[ps_suppkey->[l_suppkey],RF5[ps_partkey->[l_partkey],RF3[s_suppkey->[l_suppkey],RF2[l_orderkey->[o_orderkey],RF1[p_partkey->[l_partkey],RF0[n_nationkey->[s_nationkey]", getRuntimeFilters(plan)) -} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q1.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q1.groovy new file mode 100644 index 0000000000..be8b858ebc --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q1.groovy @@ -0,0 +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("q1") { + 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 enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + + qt_select """ + explain shape plan + select + l_returnflag, + l_linestatus, + sum(l_quantity) as sum_qty, + sum(l_extendedprice) as sum_base_price, + sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, + sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, + avg(l_quantity) as avg_qty, + avg(l_extendedprice) as avg_price, + avg(l_discount) as avg_disc, + count(*) as count_order + from + lineitem + where + l_shipdate <= date '1998-12-01' - interval '90' day + group by + l_returnflag, + l_linestatus + order by + l_returnflag, + l_linestatus; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q10.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q10.groovy new file mode 100644 index 0000000000..5e004aec39 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q10.groovy @@ -0,0 +1,70 @@ +/* + * 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("q10") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + qt_select """ + explain shape plan + select + c_custkey, + c_name, + sum(l_extendedprice * (1 - l_discount)) as revenue, + c_acctbal, + n_name, + c_address, + c_phone, + c_comment + from + customer, + orders, + lineitem, + nation + where + c_custkey = o_custkey + and l_orderkey = o_orderkey + and o_orderdate >= date '1993-10-01' + and o_orderdate < date '1993-10-01' + interval '3' month + and l_returnflag = 'R' + and c_nationkey = n_nationkey + group by + c_custkey, + c_name, + c_acctbal, + c_phone, + n_name, + c_address, + c_comment + order by + revenue desc + limit 20; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q11.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q11.groovy new file mode 100644 index 0000000000..54a4b8fccd --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q11.groovy @@ -0,0 +1,67 @@ +/* + * 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("q11") { + 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 runtime_filter_mode='GLOBAL'" + sql 'set parallel_pipeline_task_num=8' + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + + + qt_select """ + explain shape plan + select + ps_partkey, + sum(ps_supplycost * ps_availqty) as value + from + partsupp, + supplier, + nation + where + ps_suppkey = s_suppkey + and s_nationkey = n_nationkey + and n_name = 'GERMANY' + group by + ps_partkey having + sum(ps_supplycost * ps_availqty) > ( + select + sum(ps_supplycost * ps_availqty) * 0.000002 + from + partsupp, + supplier, + nation + where + ps_suppkey = s_suppkey + and s_nationkey = n_nationkey + and n_name = 'GERMANY' + ) + order by + value desc; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q12.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q12.groovy new file mode 100644 index 0000000000..796a880917 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q12.groovy @@ -0,0 +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("q12") { + 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 runtime_filter_mode='GLOBAL'" + sql 'set parallel_pipeline_task_num=8' + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + qt_select """ + explain shape plan + select + l_shipmode, + sum(case + when o_orderpriority = '1-URGENT' + or o_orderpriority = '2-HIGH' + then 1 + else 0 + end) as high_line_count, + sum(case + when o_orderpriority <> '1-URGENT' + and o_orderpriority <> '2-HIGH' + then 1 + else 0 + end) as low_line_count + from + orders, + lineitem + where + o_orderkey = l_orderkey + and l_shipmode in ('MAIL', 'SHIP') + and l_commitdate < l_receiptdate + and l_shipdate < l_commitdate + and l_receiptdate >= date '1994-01-01' + and l_receiptdate < date '1994-01-01' + interval '1' year + group by + l_shipmode + order by + l_shipmode; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q13.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q13.groovy new file mode 100644 index 0000000000..abbf891428 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q13.groovy @@ -0,0 +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("q13") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + qt_select """ + explain shape plan + select + c_count, + count(*) as custdist + from + ( + select + c_custkey, + count(o_orderkey) as c_count + from + customer left outer join orders on + c_custkey = o_custkey + and o_comment not like '%special%requests%' + group by + c_custkey + ) as c_orders + group by + c_count + order by + custdist desc, + c_count desc; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q14.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q14.groovy new file mode 100644 index 0000000000..c9ae56fad1 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q14.groovy @@ -0,0 +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("q14") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + qt_select """ + explain shape plan + select + 100.00 * sum(case + when p_type like 'PROMO%' + then l_extendedprice * (1 - l_discount) + else 0 + end) / sum(l_extendedprice * (1 - l_discount)) as promo_revenue + from + lineitem, + part + where + l_partkey = p_partkey + and l_shipdate >= date '1995-09-01' + and l_shipdate < date '1995-09-01' + interval '1' month; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q15.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q15.groovy new file mode 100644 index 0000000000..8d348ecdc0 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q15.groovy @@ -0,0 +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("q15") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + s_suppkey, + s_name, + s_address, + s_phone, + total_revenue + from + supplier, + revenue0 + where + s_suppkey = supplier_no + and total_revenue = ( + select + max(total_revenue) + from + revenue0 + ) + order by + s_suppkey; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q16.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q16.groovy new file mode 100644 index 0000000000..670dfda000 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q16.groovy @@ -0,0 +1,72 @@ +/* + * 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("q16") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + p_brand, + p_type, + p_size, + count(distinct ps_suppkey) as supplier_cnt + from + partsupp, + part + where + p_partkey = ps_partkey + and p_brand <> 'Brand#45' + and p_type not like 'MEDIUM POLISHED%' + and p_size in (49, 14, 23, 45, 19, 3, 36, 9) + and ps_suppkey not in ( + select + s_suppkey + from + supplier + where + s_comment like '%Customer%Complaints%' + ) + group by + p_brand, + p_type, + p_size + order by + supplier_cnt desc, + p_brand, + p_type, + p_size; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q17.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q17.groovy new file mode 100644 index 0000000000..177fa6b86d --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q17.groovy @@ -0,0 +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("q17") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + sum(l_extendedprice) / 7.0 as avg_yearly + from + lineitem, + part + where + p_partkey = l_partkey + and p_brand = 'Brand#23' + and p_container = 'MED BOX' + and l_quantity < ( + select + 0.2 * avg(l_quantity) + from + lineitem + where + l_partkey = p_partkey + ); + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q18.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q18.groovy new file mode 100644 index 0000000000..f18c6851a6 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q18.groovy @@ -0,0 +1,75 @@ +/* + * 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("q18") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + c_name, + c_custkey, + o_orderkey, + o_orderdate, + o_totalprice, + sum(l_quantity) + from + customer, + orders, + lineitem + where + o_orderkey in ( + select + l_orderkey + from + lineitem + group by + l_orderkey having + sum(l_quantity) > 300 + ) + and c_custkey = o_custkey + and o_orderkey = l_orderkey + group by + c_name, + c_custkey, + o_orderkey, + o_orderdate, + o_totalprice + order by + o_totalprice desc, + o_orderdate + limit 100; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q19.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q19.groovy new file mode 100644 index 0000000000..e653613ccf --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q19.groovy @@ -0,0 +1,79 @@ +/* + * 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("q19") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + sum(l_extendedprice* (1 - l_discount)) as revenue + from + lineitem, + part + where + ( + p_partkey = l_partkey + and p_brand = 'Brand#12' + and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') + and l_quantity >= 1 and l_quantity <= 1 + 10 + and p_size between 1 and 5 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ) + or + ( + p_partkey = l_partkey + and p_brand = 'Brand#23' + and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') + and l_quantity >= 10 and l_quantity <= 10 + 10 + and p_size between 1 and 10 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ) + or + ( + p_partkey = l_partkey + and p_brand = 'Brand#34' + and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') + and l_quantity >= 20 and l_quantity <= 20 + 10 + and p_size between 1 and 15 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ); + + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q2.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q2.groovy new file mode 100644 index 0000000000..d6f07a9492 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q2.groovy @@ -0,0 +1,86 @@ +/* + * 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("q2") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + s_acctbal, + s_name, + n_name, + p_partkey, + p_mfgr, + s_address, + s_phone, + s_comment + from + part, + supplier, + partsupp, + nation, + region + where + p_partkey = ps_partkey + and s_suppkey = ps_suppkey + and p_size = 15 + and p_type like '%BRASS' + and s_nationkey = n_nationkey + and n_regionkey = r_regionkey + and r_name = 'EUROPE' + and ps_supplycost = ( + select + min(ps_supplycost) + from + partsupp, + supplier, + nation, + region + where + p_partkey = ps_partkey + and s_suppkey = ps_suppkey + and s_nationkey = n_nationkey + and n_regionkey = r_regionkey + and r_name = 'EUROPE' + ) + order by + s_acctbal desc, + n_name, + s_name, + p_partkey + limit 100; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q20-rewrite.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q20-rewrite.groovy new file mode 100644 index 0000000000..100cabcf45 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q20-rewrite.groovy @@ -0,0 +1,70 @@ +/* + * 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("q20-rewrite") { + 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 runtime_filter_mode='GLOBAL'" + sql 'set parallel_pipeline_task_num=8' + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan +select +s_name, s_address +from +supplier left semi join +( + select * from + ( + select l_partkey,l_suppkey, 0.5 * sum(l_quantity) as l_q + from lineitem + where l_shipdate >= date '1994-01-01' + and l_shipdate < date '1994-01-01' + interval '1' year + group by l_partkey,l_suppkey + ) t2 join + ( + select ps_partkey, ps_suppkey, ps_availqty + from partsupp left semi join part + on ps_partkey = p_partkey and p_name like 'forest%' + ) t1 + on t2.l_partkey = t1.ps_partkey and t2.l_suppkey = t1.ps_suppkey + and t1.ps_availqty > t2.l_q +) t3 +on s_suppkey = t3.ps_suppkey +join nation +where s_nationkey = n_nationkey + and n_name = 'CANADA' +order by s_name +; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q20.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q20.groovy new file mode 100644 index 0000000000..6de71424e5 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q20.groovy @@ -0,0 +1,80 @@ +/* + * 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("q20") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + s_name, + s_address + from + supplier, + nation + where + s_suppkey in ( + select + ps_suppkey + from + partsupp + where + ps_partkey in ( + select + p_partkey + from + part + where + p_name like 'forest%' + ) + and ps_availqty > ( + select + 0.5 * sum(l_quantity) + from + lineitem + where + l_partkey = ps_partkey + and l_suppkey = ps_suppkey + and l_shipdate >= date '1994-01-01' + and l_shipdate < date '1994-01-01' + interval '1' year + ) + ) + and s_nationkey = n_nationkey + and n_name = 'CANADA' + order by + s_name; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q21.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q21.groovy new file mode 100644 index 0000000000..b78ce0df69 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q21.groovy @@ -0,0 +1,82 @@ +/* + * 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("q21") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + s_name, + count(*) as numwait + from + supplier, + lineitem l1, + orders, + nation + where + s_suppkey = l1.l_suppkey + and o_orderkey = l1.l_orderkey + and o_orderstatus = 'F' + and l1.l_receiptdate > l1.l_commitdate + and exists ( + select + * + from + lineitem l2 + where + l2.l_orderkey = l1.l_orderkey + and l2.l_suppkey <> l1.l_suppkey + ) + and not exists ( + select + * + from + lineitem l3 + where + l3.l_orderkey = l1.l_orderkey + and l3.l_suppkey <> l1.l_suppkey + and l3.l_receiptdate > l3.l_commitdate + ) + and s_nationkey = n_nationkey + and n_name = 'SAUDI ARABIA' + group by + s_name + order by + numwait desc, + s_name + limit 100; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q22.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q22.groovy new file mode 100644 index 0000000000..1320b4709d --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q22.groovy @@ -0,0 +1,79 @@ +/* + * 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("q22") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + cntrycode, + count(*) as numcust, + sum(c_acctbal) as totacctbal + from + ( + select + substring(c_phone, 1, 2) as cntrycode, + c_acctbal + from + customer + where + substring(c_phone, 1, 2) in + ('13', '31', '23', '29', '30', '18', '17') + and c_acctbal > ( + select + avg(c_acctbal) + from + customer + where + c_acctbal > 0.00 + and substring(c_phone, 1, 2) in + ('13', '31', '23', '29', '30', '18', '17') + ) + and not exists ( + select + * + from + orders + where + o_custkey = c_custkey + ) + ) as custsale + group by + cntrycode + order by + cntrycode; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q3.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q3.groovy new file mode 100644 index 0000000000..876654f6c4 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q3.groovy @@ -0,0 +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("q3") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + // db = "tpch" + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql "set runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + l_orderkey, + sum(l_extendedprice * (1 - l_discount)) as revenue, + o_orderdate, + o_shippriority + from + customer, + orders, + lineitem + where + c_mktsegment = 'BUILDING' + and c_custkey = o_custkey + and l_orderkey = o_orderkey + and o_orderdate < date '1995-03-15' + and l_shipdate > date '1995-03-15' + group by + l_orderkey, + o_orderdate, + o_shippriority + order by + revenue desc, + o_orderdate + limit 10; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q4.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q4.groovy new file mode 100644 index 0000000000..365e650434 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q4.groovy @@ -0,0 +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("q4") { + 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 runtime_filter_mode='GLOBAL'" + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + sql 'set parallel_pipeline_task_num=8' + + + + + qt_select """ + explain shape plan + select + o_orderpriority, + count(*) as order_count + from + orders + where + o_orderdate >= date '1993-07-01' + and o_orderdate < date '1993-07-01' + interval '3' month + and exists ( + select + * + from + lineitem + where + l_orderkey = o_orderkey + and l_commitdate < l_receiptdate + ) + group by + o_orderpriority + order by + o_orderpriority; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q5.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q5.groovy new file mode 100644 index 0000000000..748814e52a --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q5.groovy @@ -0,0 +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("q5") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + n_name, + sum(l_extendedprice * (1 - l_discount)) as revenue + from + customer, + orders, + lineitem, + supplier, + nation, + region + where + c_custkey = o_custkey + and l_orderkey = o_orderkey + and l_suppkey = s_suppkey + and c_nationkey = s_nationkey + and s_nationkey = n_nationkey + and n_regionkey = r_regionkey + and r_name = 'ASIA' + and o_orderdate >= date '1994-01-01' + and o_orderdate < date '1994-01-01' + interval '1' year + group by + n_name + order by + revenue desc; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q6.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q6.groovy new file mode 100644 index 0000000000..d8bc89b8ef --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q6.groovy @@ -0,0 +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("q6") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + sum(l_extendedprice * l_discount) as revenue + from + lineitem + where + l_shipdate >= date '1994-01-01' + and l_shipdate < date '1994-01-01' + interval '1' year + and l_discount between .06 - 0.01 and .06 + 0.01 + and l_quantity < 24; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q7.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q7.groovy new file mode 100644 index 0000000000..697be7ff4c --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q7.groovy @@ -0,0 +1,81 @@ +/* + * 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("q7") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + supp_nation, + cust_nation, + l_year, + sum(volume) as revenue + from + ( + select + n1.n_name as supp_nation, + n2.n_name as cust_nation, + extract(year from l_shipdate) as l_year, + l_extendedprice * (1 - l_discount) as volume + from + supplier, + lineitem, + orders, + customer, + nation n1, + nation n2 + where + s_suppkey = l_suppkey + and o_orderkey = l_orderkey + and c_custkey = o_custkey + and s_nationkey = n1.n_nationkey + and c_nationkey = n2.n_nationkey + and ( + (n1.n_name = 'FRANCE' and n2.n_name = 'GERMANY') + or (n1.n_name = 'GERMANY' and n2.n_name = 'FRANCE') + ) + and l_shipdate between date '1995-01-01' and date '1996-12-31' + ) as shipping + group by + supp_nation, + cust_nation, + l_year + order by + supp_nation, + cust_nation, + l_year; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q8.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q8.groovy new file mode 100644 index 0000000000..ef4618273c --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q8.groovy @@ -0,0 +1,79 @@ +/* + * 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("q8") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + o_year, + sum(case + when nation = 'BRAZIL' then volume + else 0 + end) / sum(volume) as mkt_share + from + ( + select + extract(year from o_orderdate) as o_year, + l_extendedprice * (1 - l_discount) as volume, + n2.n_name as nation + from + part, + supplier, + lineitem, + orders, + customer, + nation n1, + nation n2, + region + where + p_partkey = l_partkey + and s_suppkey = l_suppkey + and l_orderkey = o_orderkey + and o_custkey = c_custkey + and c_nationkey = n1.n_nationkey + and n1.n_regionkey = r_regionkey + and r_name = 'AMERICA' + and s_nationkey = n2.n_nationkey + and o_orderdate between date '1995-01-01' and date '1996-12-31' + and p_type = 'ECONOMY ANODIZED STEEL' + ) as all_nations + group by + o_year + order by + o_year; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q9.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q9.groovy new file mode 100644 index 0000000000..bdf212430e --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf_prune/q9.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("q9") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set forbid_unknown_col_stats=true' +sql 'set enable_runtime_filter_prune=true' +sql 'set enable_stats=true' +sql 'set enable_left_zig_zag=false' + + qt_select """ + explain shape plan + select + nation, + o_year, + sum(amount) as sum_profit + from + ( + select + n_name as nation, + extract(year from o_orderdate) as o_year, + l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount + from + part, + supplier, + lineitem, + partsupp, + orders, + nation + where + s_suppkey = l_suppkey + and ps_suppkey = l_suppkey + and ps_partkey = l_partkey + and p_partkey = l_partkey + and o_orderkey = l_orderkey + and s_nationkey = n_nationkey + and p_name like '%green%' + ) as profit + group by + nation, + o_year + order by + nation, + o_year desc; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q1.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q1.groovy index 3bdee3227f..bb7fc3fac9 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q1.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q1.groovy @@ -26,6 +26,7 @@ suite("q1") { sql 'SET enable_pipeline_engine = true' sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q10.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q10.groovy index a5e88aa9f6..26724582f2 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q10.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q10.groovy @@ -28,6 +28,7 @@ suite("q10") { sql 'SET enable_pipeline_engine = true' sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan select diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q11.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q11.groovy index 56997b103e..0eb87114d2 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q11.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q11.groovy @@ -27,6 +27,7 @@ suite("q11") { sql 'set exec_mem_limit=21G' sql 'SET enable_pipeline_engine = true' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q12.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q12.groovy index 8b57fad1ab..7a16d159a3 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q12.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q12.groovy @@ -27,6 +27,7 @@ suite("q12") { sql 'set exec_mem_limit=21G' sql 'SET enable_pipeline_engine = true' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan select diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q13.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q13.groovy index 002a75e361..b3de091a6d 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q13.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q13.groovy @@ -31,6 +31,7 @@ suite("q13") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan select diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q14.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q14.groovy index 2ebb2db003..de0af20ee9 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q14.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q14.groovy @@ -28,6 +28,7 @@ suite("q14") { sql 'SET enable_pipeline_engine = true' sql 'set parallel_pipeline_task_num=8' sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan select diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q15.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q15.groovy index 35135e4f65..8f763346b7 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q15.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q15.groovy @@ -31,6 +31,7 @@ suite("q15") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q16.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q16.groovy index 91a103ec63..6121fbac27 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q16.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q16.groovy @@ -31,6 +31,7 @@ suite("q16") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q17.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q17.groovy index b3ab27f5ac..ed8e34dce0 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q17.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q17.groovy @@ -31,6 +31,7 @@ suite("q17") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q18.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q18.groovy index 19e6ab54c0..2a6df6c6e2 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q18.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q18.groovy @@ -31,6 +31,7 @@ suite("q18") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q19.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q19.groovy index 61beb509b8..eeded0e8c9 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q19.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q19.groovy @@ -32,6 +32,7 @@ suite("q19") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q2.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q2.groovy index 8626220c78..d51483b48c 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q2.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q2.groovy @@ -31,6 +31,7 @@ suite("q2") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q20-rewrite.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q20-rewrite.groovy index ab93bd045b..aa90e6adcd 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q20-rewrite.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q20-rewrite.groovy @@ -32,6 +32,7 @@ suite("q20-rewrite") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q20.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q20.groovy index ecef9afb54..42d49a0947 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q20.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q20.groovy @@ -32,6 +32,7 @@ suite("q20") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q21.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q21.groovy index 00d3d30301..3020205394 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q21.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q21.groovy @@ -31,6 +31,7 @@ suite("q21") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q22.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q22.groovy index f207ae834e..0dee215499 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q22.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q22.groovy @@ -31,6 +31,7 @@ suite("q22") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q3.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q3.groovy index 3e1782b1e7..c95ea0f994 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q3.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q3.groovy @@ -32,6 +32,7 @@ suite("q3") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q4.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q4.groovy index a256c03e19..0885ba53ac 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q4.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q4.groovy @@ -25,7 +25,8 @@ suite("q4") { sql "set runtime_filter_mode='GLOBAL'" sql 'set exec_mem_limit=21G' sql 'SET enable_pipeline_engine = true' - sql 'set be_number_for_test=3' + sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' sql 'set parallel_pipeline_task_num=8' diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q5.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q5.groovy index 369c9f7bc9..ddd13e35c9 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q5.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q5.groovy @@ -31,6 +31,7 @@ suite("q5") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q6.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q6.groovy index 73f779ec72..b417d9f023 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q6.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q6.groovy @@ -31,6 +31,7 @@ suite("q6") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q7.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q7.groovy index 66568cee38..bf6c7b8f0d 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q7.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q7.groovy @@ -31,6 +31,7 @@ suite("q7") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q8.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q8.groovy index cf09998a7d..eb4fe4a120 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q8.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q8.groovy @@ -31,6 +31,7 @@ suite("q8") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q9.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q9.groovy index f8ae936a92..812e066a64 100644 --- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q9.groovy +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape/q9.groovy @@ -31,6 +31,7 @@ suite("q9") { sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' qt_select """ explain shape plan diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q1.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q1.groovy new file mode 100644 index 0000000000..6c2d3417bd --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q1.groovy @@ -0,0 +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("q1") { + 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 enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + + qt_select """ + explain shape plan + select + l_returnflag, + l_linestatus, + sum(l_quantity) as sum_qty, + sum(l_extendedprice) as sum_base_price, + sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, + sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, + avg(l_quantity) as avg_qty, + avg(l_extendedprice) as avg_price, + avg(l_discount) as avg_disc, + count(*) as count_order + from + lineitem + where + l_shipdate <= date '1998-12-01' - interval '90' day + group by + l_returnflag, + l_linestatus + order by + l_returnflag, + l_linestatus; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q10.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q10.groovy new file mode 100644 index 0000000000..6193917096 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q10.groovy @@ -0,0 +1,70 @@ +/* + * 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("q10") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + qt_select """ + explain shape plan + select + c_custkey, + c_name, + sum(l_extendedprice * (1 - l_discount)) as revenue, + c_acctbal, + n_name, + c_address, + c_phone, + c_comment + from + customer, + orders, + lineitem, + nation + where + c_custkey = o_custkey + and l_orderkey = o_orderkey + and o_orderdate >= date '1993-10-01' + and o_orderdate < date '1993-10-01' + interval '3' month + and l_returnflag = 'R' + and c_nationkey = n_nationkey + group by + c_custkey, + c_name, + c_acctbal, + c_phone, + n_name, + c_address, + c_comment + order by + revenue desc + limit 20; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q11.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q11.groovy new file mode 100644 index 0000000000..cb75fe5373 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q11.groovy @@ -0,0 +1,67 @@ +/* + * 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("q11") { + 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 runtime_filter_mode='GLOBAL'" + sql 'set parallel_pipeline_task_num=8' + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + + + qt_select """ + explain shape plan + select + ps_partkey, + sum(ps_supplycost * ps_availqty) as value + from + partsupp, + supplier, + nation + where + ps_suppkey = s_suppkey + and s_nationkey = n_nationkey + and n_name = 'GERMANY' + group by + ps_partkey having + sum(ps_supplycost * ps_availqty) > ( + select + sum(ps_supplycost * ps_availqty) * 0.000002 + from + partsupp, + supplier, + nation + where + ps_suppkey = s_suppkey + and s_nationkey = n_nationkey + and n_name = 'GERMANY' + ) + order by + value desc; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q12.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q12.groovy new file mode 100644 index 0000000000..764ff877ea --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q12.groovy @@ -0,0 +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("q12") { + 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 runtime_filter_mode='GLOBAL'" + sql 'set parallel_pipeline_task_num=8' + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + qt_select """ + explain shape plan + select + l_shipmode, + sum(case + when o_orderpriority = '1-URGENT' + or o_orderpriority = '2-HIGH' + then 1 + else 0 + end) as high_line_count, + sum(case + when o_orderpriority <> '1-URGENT' + and o_orderpriority <> '2-HIGH' + then 1 + else 0 + end) as low_line_count + from + orders, + lineitem + where + o_orderkey = l_orderkey + and l_shipmode in ('MAIL', 'SHIP') + and l_commitdate < l_receiptdate + and l_shipdate < l_commitdate + and l_receiptdate >= date '1994-01-01' + and l_receiptdate < date '1994-01-01' + interval '1' year + group by + l_shipmode + order by + l_shipmode; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q13.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q13.groovy new file mode 100644 index 0000000000..631a2dbf50 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q13.groovy @@ -0,0 +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("q13") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + qt_select """ + explain shape plan + select + c_count, + count(*) as custdist + from + ( + select + c_custkey, + count(o_orderkey) as c_count + from + customer left outer join orders on + c_custkey = o_custkey + and o_comment not like '%special%requests%' + group by + c_custkey + ) as c_orders + group by + c_count + order by + custdist desc, + c_count desc; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q14.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q14.groovy new file mode 100644 index 0000000000..c918e68eef --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q14.groovy @@ -0,0 +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("q14") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + qt_select """ + explain shape plan + select + 100.00 * sum(case + when p_type like 'PROMO%' + then l_extendedprice * (1 - l_discount) + else 0 + end) / sum(l_extendedprice * (1 - l_discount)) as promo_revenue + from + lineitem, + part + where + l_partkey = p_partkey + and l_shipdate >= date '1995-09-01' + and l_shipdate < date '1995-09-01' + interval '1' month; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q15.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q15.groovy new file mode 100644 index 0000000000..50d814689d --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q15.groovy @@ -0,0 +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("q15") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + s_suppkey, + s_name, + s_address, + s_phone, + total_revenue + from + supplier, + revenue0 + where + s_suppkey = supplier_no + and total_revenue = ( + select + max(total_revenue) + from + revenue0 + ) + order by + s_suppkey; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q16.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q16.groovy new file mode 100644 index 0000000000..f99471730a --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q16.groovy @@ -0,0 +1,72 @@ +/* + * 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("q16") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + p_brand, + p_type, + p_size, + count(distinct ps_suppkey) as supplier_cnt + from + partsupp, + part + where + p_partkey = ps_partkey + and p_brand <> 'Brand#45' + and p_type not like 'MEDIUM POLISHED%' + and p_size in (49, 14, 23, 45, 19, 3, 36, 9) + and ps_suppkey not in ( + select + s_suppkey + from + supplier + where + s_comment like '%Customer%Complaints%' + ) + group by + p_brand, + p_type, + p_size + order by + supplier_cnt desc, + p_brand, + p_type, + p_size; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q17.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q17.groovy new file mode 100644 index 0000000000..bb6bd60176 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q17.groovy @@ -0,0 +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("q17") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + sum(l_extendedprice) / 7.0 as avg_yearly + from + lineitem, + part + where + p_partkey = l_partkey + and p_brand = 'Brand#23' + and p_container = 'MED BOX' + and l_quantity < ( + select + 0.2 * avg(l_quantity) + from + lineitem + where + l_partkey = p_partkey + ); + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q18.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q18.groovy new file mode 100644 index 0000000000..26d0ad009f --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q18.groovy @@ -0,0 +1,75 @@ +/* + * 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("q18") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + c_name, + c_custkey, + o_orderkey, + o_orderdate, + o_totalprice, + sum(l_quantity) + from + customer, + orders, + lineitem + where + o_orderkey in ( + select + l_orderkey + from + lineitem + group by + l_orderkey having + sum(l_quantity) > 300 + ) + and c_custkey = o_custkey + and o_orderkey = l_orderkey + group by + c_name, + c_custkey, + o_orderkey, + o_orderdate, + o_totalprice + order by + o_totalprice desc, + o_orderdate + limit 100; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.groovy new file mode 100644 index 0000000000..abd5c84872 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.groovy @@ -0,0 +1,79 @@ +/* + * 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("q19") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + sum(l_extendedprice* (1 - l_discount)) as revenue + from + lineitem, + part + where + ( + p_partkey = l_partkey + and p_brand = 'Brand#12' + and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') + and l_quantity >= 1 and l_quantity <= 1 + 10 + and p_size between 1 and 5 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ) + or + ( + p_partkey = l_partkey + and p_brand = 'Brand#23' + and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') + and l_quantity >= 10 and l_quantity <= 10 + 10 + and p_size between 1 and 10 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ) + or + ( + p_partkey = l_partkey + and p_brand = 'Brand#34' + and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') + and l_quantity >= 20 and l_quantity <= 20 + 10 + and p_size between 1 and 15 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ); + + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q2.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q2.groovy new file mode 100644 index 0000000000..9abd6f7f41 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q2.groovy @@ -0,0 +1,86 @@ +/* + * 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("q2") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + s_acctbal, + s_name, + n_name, + p_partkey, + p_mfgr, + s_address, + s_phone, + s_comment + from + part, + supplier, + partsupp, + nation, + region + where + p_partkey = ps_partkey + and s_suppkey = ps_suppkey + and p_size = 15 + and p_type like '%BRASS' + and s_nationkey = n_nationkey + and n_regionkey = r_regionkey + and r_name = 'EUROPE' + and ps_supplycost = ( + select + min(ps_supplycost) + from + partsupp, + supplier, + nation, + region + where + p_partkey = ps_partkey + and s_suppkey = ps_suppkey + and s_nationkey = n_nationkey + and n_regionkey = r_regionkey + and r_name = 'EUROPE' + ) + order by + s_acctbal desc, + n_name, + s_name, + p_partkey + limit 100; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20-rewrite.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20-rewrite.groovy new file mode 100644 index 0000000000..afb4adbf09 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20-rewrite.groovy @@ -0,0 +1,70 @@ +/* + * 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("q20-rewrite") { + 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 runtime_filter_mode='GLOBAL'" + sql 'set parallel_pipeline_task_num=8' + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan +select +s_name, s_address +from +supplier left semi join +( + select * from + ( + select l_partkey,l_suppkey, 0.5 * sum(l_quantity) as l_q + from lineitem + where l_shipdate >= date '1994-01-01' + and l_shipdate < date '1994-01-01' + interval '1' year + group by l_partkey,l_suppkey + ) t2 join + ( + select ps_partkey, ps_suppkey, ps_availqty + from partsupp left semi join part + on ps_partkey = p_partkey and p_name like 'forest%' + ) t1 + on t2.l_partkey = t1.ps_partkey and t2.l_suppkey = t1.ps_suppkey + and t1.ps_availqty > t2.l_q +) t3 +on s_suppkey = t3.ps_suppkey +join nation +where s_nationkey = n_nationkey + and n_name = 'CANADA' +order by s_name +; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20.groovy new file mode 100644 index 0000000000..0a8f3bfb5a --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q20.groovy @@ -0,0 +1,80 @@ +/* + * 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("q20") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + s_name, + s_address + from + supplier, + nation + where + s_suppkey in ( + select + ps_suppkey + from + partsupp + where + ps_partkey in ( + select + p_partkey + from + part + where + p_name like 'forest%' + ) + and ps_availqty > ( + select + 0.5 * sum(l_quantity) + from + lineitem + where + l_partkey = ps_partkey + and l_suppkey = ps_suppkey + and l_shipdate >= date '1994-01-01' + and l_shipdate < date '1994-01-01' + interval '1' year + ) + ) + and s_nationkey = n_nationkey + and n_name = 'CANADA' + order by + s_name; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q21.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q21.groovy new file mode 100644 index 0000000000..24600e6c6b --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q21.groovy @@ -0,0 +1,82 @@ +/* + * 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("q21") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + s_name, + count(*) as numwait + from + supplier, + lineitem l1, + orders, + nation + where + s_suppkey = l1.l_suppkey + and o_orderkey = l1.l_orderkey + and o_orderstatus = 'F' + and l1.l_receiptdate > l1.l_commitdate + and exists ( + select + * + from + lineitem l2 + where + l2.l_orderkey = l1.l_orderkey + and l2.l_suppkey <> l1.l_suppkey + ) + and not exists ( + select + * + from + lineitem l3 + where + l3.l_orderkey = l1.l_orderkey + and l3.l_suppkey <> l1.l_suppkey + and l3.l_receiptdate > l3.l_commitdate + ) + and s_nationkey = n_nationkey + and n_name = 'SAUDI ARABIA' + group by + s_name + order by + numwait desc, + s_name + limit 100; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q22.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q22.groovy new file mode 100644 index 0000000000..3c4e9b6c30 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q22.groovy @@ -0,0 +1,79 @@ +/* + * 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("q22") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + cntrycode, + count(*) as numcust, + sum(c_acctbal) as totacctbal + from + ( + select + substring(c_phone, 1, 2) as cntrycode, + c_acctbal + from + customer + where + substring(c_phone, 1, 2) in + ('13', '31', '23', '29', '30', '18', '17') + and c_acctbal > ( + select + avg(c_acctbal) + from + customer + where + c_acctbal > 0.00 + and substring(c_phone, 1, 2) in + ('13', '31', '23', '29', '30', '18', '17') + ) + and not exists ( + select + * + from + orders + where + o_custkey = c_custkey + ) + ) as custsale + group by + cntrycode + order by + cntrycode; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q3.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q3.groovy new file mode 100644 index 0000000000..099f74a331 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q3.groovy @@ -0,0 +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("q3") { + String db = context.config.getDbNameByFile(new File(context.file.parent)) + // db = "tpch" + sql "use ${db}" + sql 'set enable_nereids_planner=true' + sql 'set enable_fallback_to_original_planner=false' + sql "set runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + l_orderkey, + sum(l_extendedprice * (1 - l_discount)) as revenue, + o_orderdate, + o_shippriority + from + customer, + orders, + lineitem + where + c_mktsegment = 'BUILDING' + and c_custkey = o_custkey + and l_orderkey = o_orderkey + and o_orderdate < date '1995-03-15' + and l_shipdate > date '1995-03-15' + group by + l_orderkey, + o_orderdate, + o_shippriority + order by + revenue desc, + o_orderdate + limit 10; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q4.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q4.groovy new file mode 100644 index 0000000000..8de4e509e4 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q4.groovy @@ -0,0 +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("q4") { + 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 runtime_filter_mode='GLOBAL'" + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + sql 'set parallel_pipeline_task_num=8' + + + + + qt_select """ + explain shape plan + select + o_orderpriority, + count(*) as order_count + from + orders + where + o_orderdate >= date '1993-07-01' + and o_orderdate < date '1993-07-01' + interval '3' month + and exists ( + select + * + from + lineitem + where + l_orderkey = o_orderkey + and l_commitdate < l_receiptdate + ) + group by + o_orderpriority + order by + o_orderpriority; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q5.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q5.groovy new file mode 100644 index 0000000000..0599eb7e97 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q5.groovy @@ -0,0 +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("q5") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + n_name, + sum(l_extendedprice * (1 - l_discount)) as revenue + from + customer, + orders, + lineitem, + supplier, + nation, + region + where + c_custkey = o_custkey + and l_orderkey = o_orderkey + and l_suppkey = s_suppkey + and c_nationkey = s_nationkey + and s_nationkey = n_nationkey + and n_regionkey = r_regionkey + and r_name = 'ASIA' + and o_orderdate >= date '1994-01-01' + and o_orderdate < date '1994-01-01' + interval '1' year + group by + n_name + order by + revenue desc; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q6.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q6.groovy new file mode 100644 index 0000000000..9262cd566b --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q6.groovy @@ -0,0 +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("q6") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + sum(l_extendedprice * l_discount) as revenue + from + lineitem + where + l_shipdate >= date '1994-01-01' + and l_shipdate < date '1994-01-01' + interval '1' year + and l_discount between .06 - 0.01 and .06 + 0.01 + and l_quantity < 24; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.groovy new file mode 100644 index 0000000000..807d459884 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.groovy @@ -0,0 +1,81 @@ +/* + * 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("q7") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + supp_nation, + cust_nation, + l_year, + sum(volume) as revenue + from + ( + select + n1.n_name as supp_nation, + n2.n_name as cust_nation, + extract(year from l_shipdate) as l_year, + l_extendedprice * (1 - l_discount) as volume + from + supplier, + lineitem, + orders, + customer, + nation n1, + nation n2 + where + s_suppkey = l_suppkey + and o_orderkey = l_orderkey + and c_custkey = o_custkey + and s_nationkey = n1.n_nationkey + and c_nationkey = n2.n_nationkey + and ( + (n1.n_name = 'FRANCE' and n2.n_name = 'GERMANY') + or (n1.n_name = 'GERMANY' and n2.n_name = 'FRANCE') + ) + and l_shipdate between date '1995-01-01' and date '1996-12-31' + ) as shipping + group by + supp_nation, + cust_nation, + l_year + order by + supp_nation, + cust_nation, + l_year; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q8.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q8.groovy new file mode 100644 index 0000000000..6c19378b67 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q8.groovy @@ -0,0 +1,79 @@ +/* + * 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("q8") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + o_year, + sum(case + when nation = 'BRAZIL' then volume + else 0 + end) / sum(volume) as mkt_share + from + ( + select + extract(year from o_orderdate) as o_year, + l_extendedprice * (1 - l_discount) as volume, + n2.n_name as nation + from + part, + supplier, + lineitem, + orders, + customer, + nation n1, + nation n2, + region + where + p_partkey = l_partkey + and s_suppkey = l_suppkey + and l_orderkey = o_orderkey + and o_custkey = c_custkey + and c_nationkey = n1.n_nationkey + and n1.n_regionkey = r_regionkey + and r_name = 'AMERICA' + and s_nationkey = n2.n_nationkey + and o_orderdate between date '1995-01-01' and date '1996-12-31' + and p_type = 'ECONOMY ANODIZED STEEL' + ) as all_nations + group by + o_year + order by + o_year; + """ +} diff --git a/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q9.groovy b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q9.groovy new file mode 100644 index 0000000000..7c58ea2609 --- /dev/null +++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/shape_no_stats/q9.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("q9") { + 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 runtime_filter_mode='GLOBAL'" + + sql 'set exec_mem_limit=21G' + sql 'SET enable_pipeline_engine = true' + sql 'set parallel_pipeline_task_num=8' + + + +sql 'set be_number_for_test=3' +sql 'set enable_runtime_filter_prune=false' +sql 'set forbid_unknown_col_stats=false;' +sql 'set enable_runtime_filter_prune=false' +sql 'set enable_stats=false' + + qt_select """ + explain shape plan + select + nation, + o_year, + sum(amount) as sum_profit + from + ( + select + n_name as nation, + extract(year from o_orderdate) as o_year, + l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount + from + part, + supplier, + lineitem, + partsupp, + orders, + nation + where + s_suppkey = l_suppkey + and ps_suppkey = l_suppkey + and ps_partkey = l_partkey + and p_partkey = l_partkey + and o_orderkey = l_orderkey + and s_nationkey = n_nationkey + and p_name like '%green%' + ) as profit + group by + nation, + o_year + order by + nation, + o_year desc; + """ +}