This commit is contained in:
cangyin 2024-09-18 23:24:06 +03:00 committed by GitHub
commit 8dd6d6b480
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 2 deletions

View File

@ -52,6 +52,8 @@ std::string determineDefaultTimeZone()
if (*tz_env_var == ':') if (*tz_env_var == ':')
++tz_env_var; ++tz_env_var;
else if (*tz_env_var == '\0')
return "UTC";
tz_file_path = tz_env_var; tz_file_path = tz_env_var;
tz_name = tz_env_var; tz_name = tz_env_var;
@ -68,7 +70,7 @@ std::string determineDefaultTimeZone()
/// Read symlink but not transitive. /// Read symlink but not transitive.
/// Example: /// Example:
/// /etc/localtime -> /usr/share/zoneinfo//UTC /// /etc/localtime -> /usr/share/zoneinfo//UTC
/// /usr/share/zoneinfo//UTC -> UCT /// /usr/share/zoneinfo//UTC -> UTC
/// But the preferred time zone name is pointed by the first link (UTC), and the second link is just an internal detail. /// But the preferred time zone name is pointed by the first link (UTC), and the second link is just an internal detail.
if (FS::isSymlink(tz_file_path)) if (FS::isSymlink(tz_file_path))
{ {
@ -89,7 +91,7 @@ std::string determineDefaultTimeZone()
fs::path relative_path = tz_file_path.lexically_relative(tz_database_path); fs::path relative_path = tz_file_path.lexically_relative(tz_database_path);
if (!relative_path.empty() && *relative_path.begin() != ".." && *relative_path.begin() != ".") if (!relative_path.empty() && *relative_path.begin() != ".." && *relative_path.begin() != ".")
return tz_name.empty() ? relative_path.string() : tz_name; return relative_path.string();
} }
/// Try the same with full symlinks resolution /// Try the same with full symlinks resolution

View File

@ -0,0 +1,5 @@
UTC
Asia/Shanghai
Asia/Shanghai
Europe/Amsterdam
Poland

View File

@ -0,0 +1,11 @@
#!/usr/bin/env bash
CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
# shellcheck source=../shell_config.sh
. "$CUR_DIR"/../shell_config.sh
TZ='' ${CLICKHOUSE_LOCAL} --query "SELECT timezone()";
TZ='Asia/Shanghai' ${CLICKHOUSE_LOCAL} --query "SELECT timezone()";
TZ=':Asia/Shanghai' ${CLICKHOUSE_LOCAL} --query "SELECT timezone()";
TZ=':/usr/share/zoneinfo/Europe/Amsterdam' ${CLICKHOUSE_LOCAL} --query "SELECT timezone()";
TZ='Poland' ${CLICKHOUSE_LOCAL} --query "SELECT timezone()";