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


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 1405c48a771 [opt](coordinator) optimize parallel degree of shuffle 
when use nereids (#44754) (#46397)
1405c48a771 is described below

commit 1405c48a771c7f700847326784eacb9d9a5464ef
Author: 924060929 <lanhuaj...@selectdb.com>
AuthorDate: Sat Jan 4 19:04:17 2025 +0800

    [opt](coordinator) optimize parallel degree of shuffle when use nereids 
(#44754) (#46397)
    
    cherry pick from #44754
---
 be/src/vec/aggregate_functions/aggregate_function_collect.h   | 6 ++++--
 fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java | 3 ++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/be/src/vec/aggregate_functions/aggregate_function_collect.h 
b/be/src/vec/aggregate_functions/aggregate_function_collect.h
index 95193d2039c..de58f628ec9 100644
--- a/be/src/vec/aggregate_functions/aggregate_function_collect.h
+++ b/be/src/vec/aggregate_functions/aggregate_function_collect.h
@@ -256,8 +256,10 @@ struct AggregateFunctionCollectListData<StringRef, 
HasLimit> {
             }
             max_size = rhs.max_size;
 
-            data->insert_range_from(*rhs.data, 0,
-                                    std::min(assert_cast<size_t>(max_size - 
size()), rhs.size()));
+            data->insert_range_from(
+                    *rhs.data, 0,
+                    std::min(assert_cast<size_t>(static_cast<size_t>(max_size 
- size())),
+                             rhs.size()));
         } else {
             data->insert_range_from(*rhs.data, 0, rhs.size());
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
index 500ba8f22f4..df6081626ca 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
@@ -2078,7 +2078,8 @@ public class Coordinator implements CoordInterface {
                     exchangeInstances = 
ConnectContext.get().getSessionVariable().getExchangeInstanceParallel();
                 }
                 // when we use nested loop join do right outer / semi / anti 
join, the instance must be 1.
-                if (leftMostNode.getNumInstances() == 1) {
+                boolean isNereids = context != null && 
context.getState().isNereids();
+                if (!isNereids && leftMostNode.getNumInstances() == 1) {
                     exchangeInstances = 1;
                 }
                 if (exchangeInstances > 0 && 
fragmentExecParamsMap.get(inputFragmentId)


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

Reply via email to