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 0e452b04939ab0..89cf2b21585e7d 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 @@ -2073,7 +2073,7 @@ public PlanFragment visitPhysicalPartitionTopN(PhysicalPartitionTopN physicalW // in pipeline engine, we use parallel scan by default, but it broke the rule of data distribution // we need turn of parallel scan to ensure to get correct result. // TODO: nereids forbid all parallel scan under PhysicalSetOperation temporary - if (findOlapScanNodesByPassExchangeAndJoinNode(inputPlanFragment.getPlanRoot())) { + if (findOlapScanNodesByPassExchangeNode(inputPlanFragment.getPlanRoot())) { inputPlanFragment.setHasColocatePlanNode(true); analyticEvalNode.setColocate(true); if (root instanceof SortNode) { @@ -3200,11 +3200,11 @@ private PhysicalCTEConsumer getCTEConsumerChild(PhysicalPlan root) { } } - private boolean findOlapScanNodesByPassExchangeAndJoinNode(PlanNode root) { + private boolean findOlapScanNodesByPassExchangeNode(PlanNode root) { if (root instanceof OlapScanNode) { return true; - } else if (!(root instanceof JoinNodeBase || root instanceof ExchangeNode)) { - return root.getChildren().stream().anyMatch(child -> findOlapScanNodesByPassExchangeAndJoinNode(child)); + } else if (!(root instanceof ExchangeNode)) { + return root.getChildren().stream().anyMatch(child -> findOlapScanNodesByPassExchangeNode(child)); } return false; }