From 2e3290e9b67e766fda314cb8221dd0d82691318e Mon Sep 17 00:00:00 2001 From: minghong Date: Tue, 19 Dec 2023 15:45:03 +0800 Subject: [PATCH] [fix](Nereids) stats estimation of lessThan #28444 --- .../java/org/apache/doris/nereids/stats/FilterEstimation.java | 4 ++++ .../main/java/org/apache/doris/statistics/StatisticRange.java | 4 ++++ 2 files changed, 8 insertions(+) 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 9c04b59ce6df6b..d5c9ded22e360d 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 @@ -512,6 +512,10 @@ private Statistics estimateColumnLessThanColumn(Expression leftExpr, ColumnStati context.addKeyIfSlot(rightExpr); return statistics; } + if (leftRange.isInfinite() || rightRange.isInfinite()) { + return context.statistics.withSel(DEFAULT_INEQUALITY_COEFFICIENT); + } + double leftOverlapPercent = leftRange.overlapPercentWith(rightRange); // Left always greater than right if (leftOverlapPercent == 0) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticRange.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticRange.java index 74b77c2ee7c91f..7b7b08ab24669d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticRange.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticRange.java @@ -239,4 +239,8 @@ public double getDistinctValues() { return distinctValues; } + @Override + public String toString() { + return "(" + lowExpr + "," + highExpr + ")"; + } }