diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/rollup/ContainDistinctFunctionRollupHandler.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/rollup/ContainDistinctFunctionRollupHandler.java index 4d9e6810ce4521..b935b3f247b879 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/rollup/ContainDistinctFunctionRollupHandler.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/rollup/ContainDistinctFunctionRollupHandler.java @@ -50,9 +50,14 @@ public class ContainDistinctFunctionRollupHandler extends AggFunctionRollUpHandl public static final ContainDistinctFunctionRollupHandler INSTANCE = new ContainDistinctFunctionRollupHandler(); public static Set SUPPORTED_AGGREGATE_FUNCTION_SET = ImmutableSet.of( new Max(true, Any.INSTANCE), new Min(true, Any.INSTANCE), + new Max(true, Any.INSTANCE).withAlwaysNullable(true), + new Min(true, Any.INSTANCE).withAlwaysNullable(true), new Max(false, Any.INSTANCE), new Min(false, Any.INSTANCE), - new Count(true, Any.INSTANCE), new Sum(true, Any.INSTANCE), - new Avg(true, Any.INSTANCE)); + new Max(false, Any.INSTANCE).withAlwaysNullable(true), + new Min(false, Any.INSTANCE).withAlwaysNullable(true), + new Count(true, Any.INSTANCE), + new Sum(true, Any.INSTANCE), new Sum(true, Any.INSTANCE).withAlwaysNullable(true), + new Avg(true, Any.INSTANCE), new Avg(true, Any.INSTANCE).withAlwaysNullable(true)); @Override public boolean canRollup(AggregateFunction queryAggregateFunction, diff --git a/regression-test/data/mv_p0/agg_use_key_direct/agg_use_key_direct.out b/regression-test/data/mv_p0/agg_use_key_direct/agg_use_key_direct.out index 92d3a082eb11e8..d6e17e77bc6c00 100644 --- a/regression-test/data/mv_p0/agg_use_key_direct/agg_use_key_direct.out +++ b/regression-test/data/mv_p0/agg_use_key_direct/agg_use_key_direct.out @@ -12,5 +12,5 @@ -4 -- !select_avg -- --4 +-4.0 diff --git a/regression-test/suites/mv_p0/agg_use_key_direct/agg_use_key_direct.groovy b/regression-test/suites/mv_p0/agg_use_key_direct/agg_use_key_direct.groovy index 855ea157f88284..79d26327f8244d 100644 --- a/regression-test/suites/mv_p0/agg_use_key_direct/agg_use_key_direct.groovy +++ b/regression-test/suites/mv_p0/agg_use_key_direct/agg_use_key_direct.groovy @@ -59,5 +59,5 @@ suite ("agg_use_key_direct") { order_qt_select_min """select min(distinct k3) from agg_use_key_direct""" mv_rewrite_success("""select avg(distinct k3) from agg_use_key_direct""", "common_mv") - order_qt_select_avg """select min(distinct k3) from agg_use_key_direct""" + order_qt_select_avg """select avg(distinct k3) from agg_use_key_direct""" }