morrySnow commented on code in PR #61918:
URL: https://github.com/apache/doris/pull/61918#discussion_r3019480776


##########
fe/fe-common/src/main/java/org/apache/doris/qe/GlobalVariable.java:
##########
@@ -92,60 +91,69 @@ public final class GlobalVariable {
     public static final String ENABLE_NEW_TYPE_COERCION_BEHAVIOR
             = "enable_new_type_coercion_behavior";
 
-    @VariableMgr.VarAttr(name = VARIABLE_VERSION, flag = VariableMgr.INVISIBLE
-            | VariableMgr.READ_ONLY | VariableMgr.GLOBAL)
+    @VarAttrDef.VarAttr(name = VARIABLE_VERSION, flag = VarAttrDef.INVISIBLE
+            | VarAttrDef.READ_ONLY | VarAttrDef.GLOBAL)
     public static int variableVersion = CURRENT_VARIABLE_VERSION;
 
-    @VariableMgr.VarAttr(name = VERSION_COMMENT, flag = VariableMgr.READ_ONLY)
+    @VarAttrDef.VarAttr(name = VERSION_COMMENT, flag = VarAttrDef.READ_ONLY)
     public static String versionComment = Version.DORIS_BUILD_VERSION_PREFIX + 
" version "
             + Version.DORIS_BUILD_VERSION + "-" + 
Version.DORIS_BUILD_SHORT_HASH
             + (Config.isCloudMode() ? " (Cloud Mode)" : "");
 
-    @VariableMgr.VarAttr(name = VERSION)
+    @VarAttrDef.VarAttr(name = VERSION)
     public static String version = DEFAULT_SERVER_VERSION;
 
     // 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.GLOBAL)
+    @VarAttrDef.VarAttr(name = LOWER_CASE_TABLE_NAMES, flag = 
VarAttrDef.READ_ONLY | VarAttrDef.GLOBAL)
     public static int lowerCaseTableNames = 0;
 
-    @VariableMgr.VarAttr(name = LICENSE, flag = VariableMgr.READ_ONLY)
+    @VarAttrDef.VarAttr(name = LICENSE, flag = VarAttrDef.READ_ONLY)
     public static String license = "Apache License, Version 2.0";
 
-    @VariableMgr.VarAttr(name = LANGUAGE, flag = VariableMgr.READ_ONLY)
+    @VarAttrDef.VarAttr(name = LANGUAGE, flag = VarAttrDef.READ_ONLY)
     public static String language = "/palo/share/english/";
 
     // A string to be executed by the server for each client that connects
-    @VariableMgr.VarAttr(name = INIT_CONNECT, flag = VariableMgr.GLOBAL)
+    @VarAttrDef.VarAttr(name = INIT_CONNECT, flag = VarAttrDef.GLOBAL)
     public static volatile String initConnect = "";
 
     // A string to be executed by the server for each client that connects
-    @VariableMgr.VarAttr(name = SYSTEM_TIME_ZONE, flag = VariableMgr.READ_ONLY)
-    public static String systemTimeZone = 
TimeUtils.getSystemTimeZone().getID();
+    @VarAttrDef.VarAttr(name = SYSTEM_TIME_ZONE, flag = VarAttrDef.READ_ONLY)
+    public static String systemTimeZone = resolveSystemTimeZone();
+
+    private static String resolveSystemTimeZone() {
+        String id = java.util.TimeZone.getDefault().getID();
+        // Doris convention: CST means China Standard Time (UTC+8), not US 
Central
+        if ("CST".equalsIgnoreCase(id)) {
+            return "Asia/Shanghai";
+        }
+        return id;
+    }
 

Review Comment:
   Fixed — `resolveSystemTimeZone()` now replicates the full Doris alias 
resolution: `ZoneId.SHORT_IDS` + Doris-specific overrides 
(`CST`→`Asia/Shanghai`, `PRC`→`Asia/Shanghai`, `UTC`→`UTC`, `GMT`→`UTC`). This 
exactly mirrors `TimeUtils.timeZoneAliasMap` without introducing a dependency 
on fe-core.



##########
fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java:
##########
@@ -756,8 +756,14 @@ private void replaceTableInternal(Database db, OlapTable 
origTable, OlapTable ne
         String newTblName = newTbl.getName();
 
         // Handle constraints for table replacement
-        TableNameInfo origTableInfo = new TableNameInfo(origTable);
-        TableNameInfo newTableInfo = new TableNameInfo(newTbl);
+        TableNameInfo origTableInfo = new TableNameInfo(
+                origTable.getDatabase().getCatalog().getName(),

Review Comment:
   Fixed — now using `db` parameter (the method's `Database db` arg) instead of 
`origTable.getDatabase()`. For the catalog name, we use `db.getCatalog()` with 
a fallback to `NameSpaceContext.INTERNAL_CATALOG_NAME` (this code path is only 
used for OLAP tables under the internal catalog). The `newTbl` case uses 
`newTblName.getCtl()` which was resolved earlier.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to