This is an automated email from the ASF dual-hosted git repository. morrysnow pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push: new ce34dc3ab2e [fix](nereids) stats derive for "not equal“, avoid to derive zero ndv (#31566) (#31614) ce34dc3ab2e is described below commit ce34dc3ab2e4be4051da80df6252bbac0a7d9097 Author: minghong <engle...@gmail.com> AuthorDate: Fri Mar 1 15:58:34 2024 +0800 [fix](nereids) stats derive for "not equal“, avoid to derive zero ndv (#31566) (#31614) pick from master #31566 --- .../java/org/apache/doris/nereids/stats/FilterEstimation.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 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 c086aaef5c8..3caec8a0fe8 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 @@ -24,7 +24,6 @@ import org.apache.doris.nereids.trees.expressions.And; import org.apache.doris.nereids.trees.expressions.ComparisonPredicate; import org.apache.doris.nereids.trees.expressions.CompoundPredicate; import org.apache.doris.nereids.trees.expressions.EqualPredicate; -import org.apache.doris.nereids.trees.expressions.EqualTo; import org.apache.doris.nereids.trees.expressions.Expression; import org.apache.doris.nereids.trees.expressions.GreaterThan; import org.apache.doris.nereids.trees.expressions.GreaterThanEqual; @@ -376,9 +375,9 @@ public class FilterEstimation extends ExpressionVisitor<Statistics, EstimationCo "Not-predicate meet unexpected child: %s", child.toSql()); if (child instanceof Like) { rowCount = context.statistics.getRowCount() - childStats.getRowCount(); - colBuilder.setNdv(originColStats.ndv - childColStats.ndv); + colBuilder.setNdv(Math.max(1.0, originColStats.ndv - childColStats.ndv)); } else if (child instanceof InPredicate) { - colBuilder.setNdv(originColStats.ndv - childColStats.ndv); + colBuilder.setNdv(Math.max(1.0, originColStats.ndv - childColStats.ndv)); colBuilder.setMinValue(originColStats.minValue) .setMinExpr(originColStats.minExpr) .setMaxValue(originColStats.maxValue) @@ -389,8 +388,8 @@ public class FilterEstimation extends ExpressionVisitor<Statistics, EstimationCo .setMinExpr(originColStats.minExpr) .setMaxValue(originColStats.maxValue) .setMaxExpr(originColStats.maxExpr); - } else if (child instanceof EqualTo) { - colBuilder.setNdv(originColStats.ndv - childColStats.ndv); + } else if (child instanceof EqualPredicate) { + colBuilder.setNdv(Math.max(1.0, originColStats.ndv - childColStats.ndv)); colBuilder.setMinValue(originColStats.minValue) .setMinExpr(originColStats.minExpr) .setMaxValue(originColStats.maxValue) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org