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

924060929 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 0b95079d154 [opt](planner) Enable Nereids distribute planner after 
upgrade (#66604)
0b95079d154 is described below

commit 0b95079d1540f57e8e29a45039db59455b70bfcf
Author: 924060929 <[email protected]>
AuthorDate: Tue Aug 11 10:58:05 2026 +0800

    [opt](planner) Enable Nereids distribute planner after upgrade (#66604)
    
    Problem Summary: New installations default
    enable_nereids_distribute_planner to true, but clusters upgrading from a
    variable version below 400 restore the persisted global session default
    from their image. Clusters that persisted the previous false default
    would therefore continue using the legacy distribute planner after
    upgrading to 4.0. Add enable_nereids_distribute_planner to the existing
    variable-version-400 migration so that the 3.x-to-4.0 upgrade enables
    it. The migration uses the existing global-variable edit-log path and
    does not change clusters whose variable version is already 400.
    
    ### Release note
    
    Clusters upgrading to 4.0 now enable the Nereids distribute planner by
    default.
---
 .../main/java/org/apache/doris/qe/VariableMgr.java |  3 +++
 .../java/org/apache/doris/qe/VariableMgrTest.java  | 25 ++++++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java
index 3e3861b3e69..9dc60db134a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java
@@ -1112,6 +1112,9 @@ public class VariableMgr {
             VariableMgr.refreshDefaultSessionVariables(updateInfo,
                     SessionVariable.ENABLE_SQL_CACHE,
                     String.valueOf(true));
+            VariableMgr.refreshDefaultSessionVariables(updateInfo,
+                    SessionVariable.ENABLE_NEREIDS_DISTRIBUTE_PLANNER,
+                    String.valueOf(true));
         }
         if (currentVariableVersion < GlobalVariable.CURRENT_VARIABLE_VERSION) {
             VariableMgr.refreshDefaultSessionVariables(updateInfo,
diff --git a/fe/fe-core/src/test/java/org/apache/doris/qe/VariableMgrTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/qe/VariableMgrTest.java
index 97cdf4b8021..336d1275df7 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/qe/VariableMgrTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/qe/VariableMgrTest.java
@@ -105,6 +105,31 @@ public class VariableMgrTest extends TestWithFeService {
         Assertions.assertEquals(defaultSessionVar.enableProfile(), 
VariableMgr.newSessionVariable().enableProfile());
     }
 
+    @Test
+    public void testEnableNereidsDistributePlannerAfterUpgrade() {
+        SessionVariable defaultSessionVariable = 
VariableMgr.getDefaultSessionVariable();
+        boolean originalValue = 
defaultSessionVariable.isEnableNereidsDistributePlanner();
+        boolean originalEnableSqlCache = 
defaultSessionVariable.isEnableSqlCache();
+        boolean originalAnsiBehavior = 
GlobalVariable.enable_ansi_query_organization_behavior;
+        boolean originalTypeCoercionBehavior = 
GlobalVariable.enableNewTypeCoercionBehavior;
+        int originalVersion = GlobalVariable.variableVersion;
+        try {
+            defaultSessionVariable.setEnableNereidsDistributePlanner(false);
+            GlobalVariable.variableVersion = 
GlobalVariable.VARIABLE_VERSION_300;
+
+            VariableMgr.forceUpdateVariables();
+
+            
Assertions.assertTrue(VariableMgr.newSessionVariable().isEnableNereidsDistributePlanner());
+            Assertions.assertEquals(GlobalVariable.CURRENT_VARIABLE_VERSION, 
GlobalVariable.variableVersion);
+        } finally {
+            
defaultSessionVariable.setEnableNereidsDistributePlanner(originalValue);
+            defaultSessionVariable.setEnableSqlCache(originalEnableSqlCache);
+            GlobalVariable.enable_ansi_query_organization_behavior = 
originalAnsiBehavior;
+            GlobalVariable.enableNewTypeCoercionBehavior = 
originalTypeCoercionBehavior;
+            GlobalVariable.variableVersion = originalVersion;
+        }
+    }
+
     @Test
     public void testAutoCommitConvert() throws Exception {
         // boolean var with ConvertBoolToLongMethod annotation


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to