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

lihaopeng 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 77dfdfdd50 [Bug][pipeline] Fix regression tpcds failed in nereid 
planner (#19885)
77dfdfdd50 is described below

commit 77dfdfdd50625e0164e9bb89e701399301c3c618
Author: HappenLee <[email protected]>
AuthorDate: Fri May 19 22:30:48 2023 +0800

    [Bug][pipeline] Fix regression tpcds failed in nereid planner (#19885)
---
 .../nereids/glue/translator/PhysicalPlanTranslator.java      |  4 +---
 .../java/org/apache/doris/planner/DistributedPlanner.java    | 12 ++++++++----
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
index c995e2b78d..58b4af48b9 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
@@ -146,7 +146,6 @@ import org.apache.doris.planner.UnionNode;
 import org.apache.doris.planner.external.HiveScanNode;
 import org.apache.doris.planner.external.HudiScanNode;
 import org.apache.doris.planner.external.iceberg.IcebergScanNode;
-import org.apache.doris.qe.ConnectContext;
 import org.apache.doris.tablefunction.TableValuedFunctionIf;
 import org.apache.doris.thrift.TFetchOption;
 import org.apache.doris.thrift.TPartitionType;
@@ -391,8 +390,7 @@ public class PhysicalPlanTranslator extends 
DefaultPlanVisitor<PlanFragment, Pla
         //  so complex aggregate plan than legacy planner, and should add 
forbid parallel scan hint when
         //  generate physical aggregate plan.
         if (leftMostNode instanceof OlapScanNode && 
aggregate.getAggregateParam().needColocateScan) {
-            currentFragment.getPlanRoot().setShouldColoScan();
-            
currentFragment.setHasColocatePlanNode(!ConnectContext.get().getSessionVariable().enablePipelineEngine());
+            currentFragment.setHasColocatePlanNode(true);
         }
         setPlanRoot(currentFragment, aggregationNode, aggregate);
         if (aggregate.getStats() != null) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/planner/DistributedPlanner.java 
b/fe/fe-core/src/main/java/org/apache/doris/planner/DistributedPlanner.java
index 9519b1e6fc..561a771e3c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/DistributedPlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/DistributedPlanner.java
@@ -931,12 +931,16 @@ public class DistributedPlanner {
         if (isDistinct) {
             return createPhase2DistinctAggregationFragment(node, 
childFragment, fragments);
         } else {
-            if (canColocateAgg(node.getAggInfo(), 
childFragment.getDataPartition())
-                    || 
childFragment.getPlanRoot().shouldColoAgg(node.getAggInfo())) {
+            if (canColocateAgg(node.getAggInfo(), 
childFragment.getDataPartition())) {
+                childFragment.addPlanRoot(node);
+                childFragment.setHasColocatePlanNode(true);
+                return childFragment;
+            } else if 
(ConnectContext.get().getSessionVariable().enablePipelineEngine()
+                    && 
childFragment.getPlanRoot().shouldColoAgg(node.getAggInfo())
+                    && childFragment.getPlanRoot() instanceof OlapScanNode) {
                 childFragment.getPlanRoot().setShouldColoScan();
                 childFragment.addPlanRoot(node);
-                // pipeline here should use shared scan to improve performance
-                
childFragment.setHasColocatePlanNode(!ConnectContext.get().getSessionVariable().enablePipelineEngine());
+                childFragment.setHasColocatePlanNode(false);
                 return childFragment;
             } else {
                 return createMergeAggregationFragment(node, childFragment);


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

Reply via email to