This is an automated email from the ASF dual-hosted git repository.

englefly pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new f24174ebf1 when estimated rowCount is 0, adjust to 1 (#18174)
f24174ebf1 is described below

commit f24174ebf1d0493aa3d6bbb2721d69ce2b486f8a
Author: minghong <[email protected]>
AuthorDate: Wed Mar 29 19:03:53 2023 +0800

    when estimated rowCount is 0, adjust to 1 (#18174)
---
 .../main/java/org/apache/doris/nereids/stats/FilterEstimation.java  | 6 ++----
 1 file changed, 2 insertions(+), 4 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 c906490cb5..6bc3bc96c6 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
@@ -319,10 +319,8 @@ public class FilterEstimation extends 
ExpressionVisitor<Statistics, EstimationCo
     @Override
     public Statistics visitNot(Not not, EstimationContext context) {
         Statistics childStats = new FilterEstimation().estimate(not.child(), 
context.statistics);
-        double rowCount = Math.max(context.statistics.getRowCount() - 
childStats.getRowCount(), 0);
-        if (rowCount == 0.0) {
-            return Statistics.zero(context.statistics);
-        }
+        //if estimated rowCount is 0, adjust to 1 to make upper join reorder 
reasonable.
+        double rowCount = Math.max(context.statistics.getRowCount() - 
childStats.getRowCount(), 1);
         StatisticsBuilder statisticsBuilder = new 
StatisticsBuilder(context.statistics).setRowCount(rowCount);
         for (Entry<Expression, ColumnStatistic> entry : 
context.statistics.columnStatistics().entrySet()) {
             Expression expr = entry.getKey();


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to