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]