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

englefly 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 9d57db1c328 [opt](nereids) add dphyper limit configuration (#38739)
9d57db1c328 is described below

commit 9d57db1c328828dbd48d42261f3c2dfdfb62706c
Author: xzj7019 <131111794+xzj7...@users.noreply.github.com>
AuthorDate: Mon Aug 5 13:57:55 2024 +0800

    [opt](nereids) add dphyper limit configuration (#38739)
    
    ## Proposed changes
    
    Issue Number: close #xxx
    
    Make dphyper limit configurable.
    
    Co-authored-by: zhongjian.xzj 
<zhongjian.xzj@zhongjianxzjdeMacBook-Pro.local>
---
 .../java/org/apache/doris/nereids/jobs/joinorder/JoinOrderJob.java   | 4 +++-
 fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java    | 5 ++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/joinorder/JoinOrderJob.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/joinorder/JoinOrderJob.java
index 08e40f84a6c..9b9f2f9fe4b 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/joinorder/JoinOrderJob.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/joinorder/JoinOrderJob.java
@@ -79,8 +79,10 @@ public class JoinOrderJob extends Job {
             builder.updateNode(node.getIndex(), 
optimizePlan(dPhyperNode.getGroup()));
         }
         HyperGraph hyperGraph = builder.build();
-        // TODO: Right now, we just hardcode the limit with 10000, maybe we 
need a better way to set it
         int limit = 1000;
+        if (this.context.getCascadesContext().getConnectContext() != null) {
+            limit = 
this.context.getCascadesContext().getConnectContext().getSessionVariable().dphyperLimit;
+        }
         PlanReceiver planReceiver = new PlanReceiver(this.context, limit, 
hyperGraph,
                 group.getLogicalProperties().getOutputSet());
         if (!tryEnumerateJoin(hyperGraph, planReceiver, limit)) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
index e1fabc5a16a..94b33b3fbb9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
@@ -303,7 +303,7 @@ public class SessionVariable implements Serializable, 
Writable {
             = "trim_tailing_spaces_for_external_table_query";
 
     public static final String ENABLE_DPHYP_OPTIMIZER = 
"enable_dphyp_optimizer";
-
+    public static final String DPHYPER_LIMIT = "dphyper_limit";
     public static final String ENABLE_LEFT_ZIG_ZAG = "enable_left_zig_zag";
     public static final String NTH_OPTIMIZED_PLAN = "nth_optimized_plan";
 
@@ -1546,6 +1546,9 @@ public class SessionVariable implements Serializable, 
Writable {
     @VariableMgr.VarAttr(name = "memo_max_group_expression_size")
     public int memoMaxGroupExpressionSize = 10000;
 
+    @VariableMgr.VarAttr(name = DPHYPER_LIMIT)
+    public int dphyperLimit = 1000;
+
     @VariableMgr.VarAttr(name = ENABLE_MINIDUMP)
     public boolean enableMinidump = false;
 


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

Reply via email to