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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]