From edc052d51304aae97aae3b5dbd15b2bef2995fee Mon Sep 17 00:00:00 2001 From: morrySnow Date: Tue, 7 Jan 2025 10:28:35 +0800 Subject: [PATCH] [fix](variable) variable version not persist in image (#46463) ### What problem does this PR solve? Related PR: #41607 #45648 Problem Summary: org.apache.doris.qe.GlobalVariable#getPersistentGlobalVarNames should use bit and to check whether variable is Global --- .../src/main/java/org/apache/doris/qe/GlobalVariable.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/GlobalVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/GlobalVariable.java index 6a08c97cd4858f..e597c99dc61ada 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/GlobalVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/GlobalVariable.java @@ -91,7 +91,7 @@ public final class GlobalVariable { // 0: table names are stored as specified and comparisons are case sensitive. // 1: table names are stored in lowercase on disk and comparisons are not case sensitive. // 2: table names are stored as given but compared in lowercase. - @VariableMgr.VarAttr(name = LOWER_CASE_TABLE_NAMES, flag = VariableMgr.READ_ONLY) + @VariableMgr.VarAttr(name = LOWER_CASE_TABLE_NAMES, flag = VariableMgr.READ_ONLY | VariableMgr.GLOBAL) public static int lowerCaseTableNames = 0; @VariableMgr.VarAttr(name = LICENSE, flag = VariableMgr.READ_ONLY) @@ -199,8 +199,7 @@ public static List getPersistentGlobalVarNames() { List varNames = Lists.newArrayList(); for (Field field : GlobalVariable.class.getDeclaredFields()) { VariableMgr.VarAttr attr = field.getAnnotation(VariableMgr.VarAttr.class); - // Since the flag of lower_case_table_names is READ_ONLY, it is handled separately here. - if (attr != null && (attr.flag() == VariableMgr.GLOBAL || attr.name().equals(LOWER_CASE_TABLE_NAMES))) { + if (attr != null && (attr.flag() & VariableMgr.GLOBAL) != 0) { varNames.add(attr.name()); } }