This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.1 by this push:
new 731add938b9 branch-3.1: [fix](variable) fix unset global variable in
non-master FE (#58284)
731add938b9 is described below
commit 731add938b9d941fe760e8c39b25c6788cdd537a
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Wed Nov 26 10:42:16 2025 +0800
branch-3.1: [fix](variable) fix unset global variable in non-master FE
(#58284)
---
fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java | 8 +++++++-
fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java | 4 ++--
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
index fedf66289b8..1c3bb84c574 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
@@ -184,6 +184,7 @@ import
org.apache.doris.qe.CommonResultSet.CommonResultSetMetaData;
import org.apache.doris.qe.ConnectContext.ConnectType;
import org.apache.doris.qe.QeProcessorImpl.QueryInfo;
import org.apache.doris.qe.QueryState.MysqlStateType;
+import org.apache.doris.qe.VariableMgr.VarContext;
import org.apache.doris.qe.cache.Cache;
import org.apache.doris.qe.cache.CacheAnalyzer;
import org.apache.doris.qe.cache.CacheAnalyzer.CacheMode;
@@ -1288,7 +1289,12 @@ public class StmtExecutor {
}
SetVar var = new SetVar(SetType.SESSION,
unsetStmt.getVariable(),
new StringLiteral(defaultValue),
SetVarType.SET_SESSION_VAR);
- VariableMgr.setVar(context.getSessionVariable(), var);
+ VarContext varCtx =
VariableMgr.getVarContext(var.getVariable());
+ // only unset for session variable.
+ // If this is a global variable, no need to do this because it
has been synced from editlog already.
+ if (varCtx != null && (varCtx.getFlag() & VariableMgr.SESSION)
!= 0) {
+ VariableMgr.setVar(context.getSessionVariable(), var);
+ }
}
}
}
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 03e09637fad..5f4671ca6b4 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
@@ -319,7 +319,7 @@ public class VariableMgr {
}
@Nullable
- private static VarContext getVarContext(String name) {
+ public static VarContext getVarContext(String name) {
String varName = name;
boolean hasExpPrefix = false;
if (varName.startsWith(VariableAnnotation.EXPERIMENTAL.getPrefix())) {
@@ -880,7 +880,7 @@ public class VariableMgr {
String convertBoolToLongMethod() default "";
}
- private static class VarContext {
+ public static class VarContext {
private Field field;
private Object obj;
private int flag;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]