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

yiguolei 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 aad8043d44 [opt](Nereids) enable parallel scan for local phase agg 
(#21642)
aad8043d44 is described below

commit aad8043d44ef7b9aa860905d99f197616cc2a92a
Author: morrySnow <101034200+morrys...@users.noreply.github.com>
AuthorDate: Sat Jul 8 21:47:17 2023 +0800

    [opt](Nereids) enable parallel scan for local phase agg (#21642)
    
    after we forbid some cases off agg candidate plans,
    all local phase agg require DistributionSpecAny for child.
    So, we could enable parallel scan for it
---
 .../apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

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 9844179633..fb01db5c41 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
@@ -699,8 +699,11 @@ public class PhysicalPlanTranslator extends 
DefaultPlanVisitor<PlanFragment, Pla
         // TODO: nereids forbid all parallel scan under aggregate temporary, 
because nereids could generate
         //  so complex aggregate plan than legacy planner, and should add 
forbid parallel scan hint when
         //  generate physical aggregate plan.
+        //  There is one exception, we use some precondition in optimizer, 
input to buffer always require any for input,
+        //  so when agg mode is INPUT_TO_BUFFER, we do not forbid parallel scan
         if (leftMostNode instanceof OlapScanNode
-                && inputPlanFragment.getDataPartition().getType() != 
TPartitionType.RANDOM) {
+                && inputPlanFragment.getDataPartition().getType() != 
TPartitionType.RANDOM
+                && aggregate.getAggregateParam().aggMode != 
AggMode.INPUT_TO_BUFFER) {
             inputPlanFragment.setHasColocatePlanNode(true);
         }
         setPlanRoot(inputPlanFragment, aggregationNode, aggregate);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to