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

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


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new ebe3625498a [fix](planner) should not push down sink when last 
exchange do limit (#31622) (#31672)
ebe3625498a is described below

commit ebe3625498a5b481740f62be42cb4e656a6fadf9
Author: morrySnow <[email protected]>
AuthorDate: Fri Mar 1 18:54:23 2024 +0800

    [fix](planner) should not push down sink when last exchange do limit 
(#31622) (#31672)
    
    pick from master #31622
    commit id 585d12431c310c006b55bb81208b5805f381c3ed
---
 .../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 bde891a8351..7c412f3ce88 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
@@ -99,11 +99,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 1140d326fe0..d171cfe67fc 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
@@ -362,7 +362,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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to