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

morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 866644be025 [fix](memo) memo print string is checked by mistake 
(#60074)
866644be025 is described below

commit 866644be025e89a1bd3fe8820e700d7cbf7daa68
Author: morrySnow <[email protected]>
AuthorDate: Wed Jan 21 15:33:57 2026 +0800

    [fix](memo) memo print string is checked by mistake (#60074)
    
    Related PR: #59600.
    
    Problem Summary:
    
    root cause: enforcer instance in lowest cost plan map not in enforcer
    set
---
 .../src/main/java/org/apache/doris/nereids/NereidsPlanner.java      | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java
index c54f2c13a6f..8a6c999e58c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java
@@ -70,6 +70,7 @@ import 
org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan;
 import org.apache.doris.nereids.trees.plans.logical.LogicalPlan;
 import org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache;
 import org.apache.doris.nereids.trees.plans.physical.PhysicalDictionarySink;
+import org.apache.doris.nereids.trees.plans.physical.PhysicalDistribute;
 import org.apache.doris.nereids.trees.plans.physical.PhysicalPlan;
 import org.apache.doris.nereids.trees.plans.physical.PhysicalRelation;
 import org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache;
@@ -761,7 +762,10 @@ public class NereidsPlanner extends Planner {
             GroupExpression groupExpression = 
rootGroup.getLowestCostPlan(physicalProperties).orElseThrow(
                     () -> new AnalysisException("lowestCostPlans with 
physicalProperties("
                             + physicalProperties + ") doesn't exist in root 
group")).second;
-            if (rootGroup.getEnforcers().containsKey(groupExpression)) {
+            if ((groupExpression.getPlan() instanceof PhysicalDistribute
+                    && rootGroup.getEnforcerSpecs().containsKey(
+                            ((PhysicalDistribute<?>) 
groupExpression.getPlan()).getDistributionSpec()))
+                    || rootGroup.getEnforcers().containsKey(groupExpression)) {
                 rootGroup.addChosenEnforcerId(groupExpression.getId().asInt());
                 rootGroup.addChosenEnforcerProperties(physicalProperties);
             } else {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to