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

dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new af1a5d00146 branch-3.0: [opt](nereids) set column stats unkown by 
default when derive Not expressoin #48864 (#49023)
af1a5d00146 is described below

commit af1a5d00146fb751ed0a61e64b08ec80b3b0d4c6
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Apr 22 10:41:51 2025 +0800

    branch-3.0: [opt](nereids) set column stats unkown by default when derive 
Not expressoin #48864 (#49023)
    
    Cherry-picked from #48864
    
    Co-authored-by: minghong <zhoumingh...@selectdb.com>
---
 .../org/apache/doris/nereids/stats/FilterEstimation.java     | 12 ++++--------
 1 file changed, 4 insertions(+), 8 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 e050ae9fe0f..feb7690fa35 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
@@ -502,14 +502,7 @@ public class FilterEstimation extends 
ExpressionVisitor<Statistics, EstimationCo
                 // 4. not A like XXX
                 // 5. not array_contains([xx, xx], xx)
                 colBuilder.setNumNulls(0);
-                Preconditions.checkArgument(
-                        child instanceof EqualPredicate
-                                || child instanceof InPredicate
-                                || child instanceof IsNull
-                                || child instanceof Like
-                                || child instanceof Match
-                                || child instanceof Function,
-                        "Not-predicate meet unexpected child: %s", 
child.toSql());
+
                 if (child instanceof Like) {
                     rowCount = context.statistics.getRowCount() - 
childStats.getRowCount();
                     colBuilder.setNdv(Math.max(1.0, originColStats.ndv - 
childColStats.ndv));
@@ -534,6 +527,9 @@ public class FilterEstimation extends 
ExpressionVisitor<Statistics, EstimationCo
                 } else if (child instanceof Match) {
                     rowCount = context.statistics.getRowCount() - 
childStats.getRowCount();
                     colBuilder.setNdv(Math.max(1.0, originColStats.ndv - 
childColStats.ndv));
+                } else {
+                    rowCount = context.statistics.getRowCount() - 
childStats.getRowCount();
+                    colBuilder.setIsUnknown(true);
                 }
                 if (not.child().getInputSlots().size() == 1 && !(child 
instanceof IsNull)) {
                     // only consider the single column numNull, otherwise, 
ignore


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to