This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 9e0e40c1e6c branch-2.1: [fix](nereids) Not use rule
FOUR_PHASE_AGGREGATE_WITH_DISTINCT_WITH_FULL_DISTRIBUTE when
mustUseMultiDistinctAgg #51099 (#51140)
9e0e40c1e6c is described below
commit 9e0e40c1e6c000744669f022f02952728bc0c3d8
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu May 22 17:45:15 2025 +0800
branch-2.1: [fix](nereids) Not use rule
FOUR_PHASE_AGGREGATE_WITH_DISTINCT_WITH_FULL_DISTRIBUTE when
mustUseMultiDistinctAgg #51099 (#51140)
Cherry-picked from #51099
Co-authored-by: feiniaofeiafei <[email protected]>
---
.../nereids/rules/implementation/AggregateStrategies.java | 2 ++
regression-test/suites/nereids_syntax_p0/agg_4_phase.groovy | 10 ++++++++++
2 files changed, 12 insertions(+)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/AggregateStrategies.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/AggregateStrategies.java
index 1a0c655695f..3f690ad3c3a 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/AggregateStrategies.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/AggregateStrategies.java
@@ -62,6 +62,7 @@ import org.apache.doris.nereids.trees.plans.AggMode;
import org.apache.doris.nereids.trees.plans.AggPhase;
import org.apache.doris.nereids.trees.plans.GroupPlan;
import org.apache.doris.nereids.trees.plans.Plan;
+import org.apache.doris.nereids.trees.plans.algebra.Aggregate;
import org.apache.doris.nereids.trees.plans.algebra.Project;
import org.apache.doris.nereids.trees.plans.logical.LogicalAggregate;
import org.apache.doris.nereids.trees.plans.logical.LogicalFileScan;
@@ -412,6 +413,7 @@ public class AggregateStrategies implements
ImplementationRuleFactory {
return couldConvertToMulti(agg);
})
.when(agg ->
agg.supportAggregatePhase(AggregatePhase.FOUR))
+ .whenNot(Aggregate::mustUseMultiDistinctAgg)
.thenApplyMulti(ctx -> {
Function<List<Expression>, RequireProperties>
secondPhaseRequireGroupByAndDistinctHash =
groupByAndDistinct -> RequireProperties.of(
diff --git a/regression-test/suites/nereids_syntax_p0/agg_4_phase.groovy
b/regression-test/suites/nereids_syntax_p0/agg_4_phase.groovy
index ed69d0018c9..e2113ee7571 100644
--- a/regression-test/suites/nereids_syntax_p0/agg_4_phase.groovy
+++ b/regression-test/suites/nereids_syntax_p0/agg_4_phase.groovy
@@ -85,4 +85,14 @@ suite("agg_4_phase") {
from agg_4_phase_tbl2
group by id
order by id"""
+
+ test {
+ sql """select
+
/*+SET_VAR(disable_nereids_rules='TWO_PHASE_AGGREGATE_SINGLE_DISTINCT_TO_MULTI')*/
+ id,group_concat(distinct field2 order by field1)
+ from agg_4_phase_tbl2
+ group by id
+ """
+ exception """lowestCostPlans with physicalProperties(GATHER) doesn't
exist in root group"""
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]