You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2024/03/01 06:22:24 UTC

(doris) 07/07: [fix](planner) should not push down sink when last exchange do limit (#31622)

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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git

commit a8e2652f78a625c7975e949510f2dde253fac5a2
Author: morrySnow <10...@users.noreply.github.com>
AuthorDate: Fri Mar 1 14:15:56 2024 +0800

    [fix](planner) should not push down sink when last exchange do limit (#31622)
---
 .../src/main/java/org/apache/doris/planner/ExchangeNode.java       | 7 ++-----
 .../src/main/java/org/apache/doris/planner/OriginalPlanner.java    | 2 +-
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/ExchangeNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/ExchangeNode.java
index 65a366fde16..4ada9a82f7c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/ExchangeNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/ExchangeNode.java
@@ -105,11 +105,8 @@ public class ExchangeNode extends PlanNode {
         computeTupleIds();
     }
 
-    public boolean isMergingExchange() {
-        if (mergeInfo != null) {
-            return true;
-        }
-        return false;
+    public boolean isFunctionalExchange() {
+        return mergeInfo != null || limit != -1 || offset != 0;
     }
 
     @Override
diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/OriginalPlanner.java b/fe/fe-core/src/main/java/org/apache/doris/planner/OriginalPlanner.java
index cf93be1611c..0b3fbb9eb5f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/OriginalPlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/OriginalPlanner.java
@@ -373,7 +373,7 @@ public class OriginalPlanner extends Planner {
         PlanFragment topPlanFragment = fragments.get(0);
         ExchangeNode topPlanNode = (ExchangeNode) topPlanFragment.getPlanRoot();
         // try to push down result file sink
-        if (topPlanNode.isMergingExchange()) {
+        if (topPlanNode.isFunctionalExchange()) {
             return;
         }
         PlanFragment secondPlanFragment = fragments.get(1);


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