From 9915862bf7d40f24a683c8c956c51499f1b1a9fb Mon Sep 17 00:00:00 2001 From: minghong Date: Fri, 10 May 2024 11:20:02 +0800 Subject: [PATCH] [opt](nereids)estimate rowcount for is-null filter when column stats are not available (#34519) * estimate rowcount for is-null filter when column stats are not available --- .../doris/nereids/stats/FilterEstimation.java | 6 ++--- .../noStatsRfPrune/query76.out | 22 +++++++++---------- .../no_stats_shape/query76.out | 22 +++++++++---------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/FilterEstimation.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/FilterEstimation.java index 45e6dcd2ab..2286daaa44 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/FilterEstimation.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/FilterEstimation.java @@ -64,9 +64,8 @@ public class FilterEstimation extends ExpressionVisitor aggSlots; private boolean isOnBaseTable = false; @@ -421,7 +420,8 @@ public class FilterEstimation extends ExpressionVisitor[ws_sold_date_sk] -----------------------PhysicalProject -------------------------hashJoin[INNER_JOIN] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[ws_item_sk] +----------------PhysicalProject +------------------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=() build RFs:RF2 i_item_sk->[ws_item_sk] +------------------------PhysicalDistribute[DistributionSpecHash] --------------------------PhysicalProject ----------------------------filter(ws_bill_addr_sk IS NULL) ------------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 RF3 ---------------------------PhysicalDistribute[DistributionSpecReplicated] -----------------------------PhysicalProject -------------------------------PhysicalOlapScan[item] -----------------------PhysicalDistribute[DistributionSpecReplicated] -------------------------PhysicalProject ---------------------------PhysicalOlapScan[date_dim] +------------------------PhysicalDistribute[DistributionSpecHash] +--------------------------PhysicalProject +----------------------------PhysicalOlapScan[item] +--------------------PhysicalDistribute[DistributionSpecReplicated] +----------------------PhysicalProject +------------------------PhysicalOlapScan[date_dim] ----------------PhysicalDistribute[DistributionSpecExecutionAny] ------------------PhysicalProject --------------------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]