diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java index 91eb500586..38b8546cfb 100755 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java @@ -1502,6 +1502,10 @@ public class Env { VariableMgr.setGlobalBroadcastScaleFactor(newBcFactorVal); LOG.info("upgrade FE from 1.x to 2.x, set broadcast_right_table_scale_factor " + "to new default value: {}", newBcFactorVal); + + // similar reason as above, need to upgrade enable_nereids_planner to true + VariableMgr.enableNereidsPlanner(); + LOG.info("upgrade FE from 1.x to 2.x, set enable_nereids_planner to new default value: true"); } } 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 7b797ea84a..399170865c 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 @@ -415,6 +415,26 @@ public class VariableMgr { } } + public static void enableNereidsPlanner() { + wlock.lock(); + try { + VarContext ctx = ctxByVarName.get(SessionVariable.ENABLE_NEREIDS_PLANNER); + try { + setValue(ctx.getObj(), ctx.getField(), String.valueOf(true)); + } catch (DdlException e) { + LOG.warn("failed to set global variable: {}", SessionVariable.ENABLE_NEREIDS_PLANNER, e); + return; + } + + // write edit log + GlobalVarPersistInfo info = new GlobalVarPersistInfo(defaultSessionVariable, + Lists.newArrayList(SessionVariable.ENABLE_NEREIDS_PLANNER)); + Env.getCurrentEnv().getEditLog().logGlobalVariableV2(info); + } finally { + wlock.unlock(); + } + } + public static void setLowerCaseTableNames(int mode) throws DdlException { VarContext ctx = ctxByVarName.get(GlobalVariable.LOWER_CASE_TABLE_NAMES); setGlobalVarAndWriteEditLog(ctx, GlobalVariable.LOWER_CASE_TABLE_NAMES, "" + mode);