From 4bdc2cde2a6fbf3e7aec97c14536fb8dc568e0a9 Mon Sep 17 00:00:00 2001 From: morrySnow <101034200+morrySnow@users.noreply.github.com> Date: Fri, 26 Jan 2024 12:05:34 +0800 Subject: [PATCH] [chore](Nereids) enable nereids if update from doris 1.x (#30369) --- .../java/org/apache/doris/catalog/Env.java | 4 ++++ .../java/org/apache/doris/qe/VariableMgr.java | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+) 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);