mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-19 16:20:50 +00:00
Merge 4d7368a01a
into b94a7167a8
This commit is contained in:
commit
8dd6d6b480
@ -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
|
||||||
|
5
tests/queries/0_stateless/03206_timezone_env.reference
Normal file
5
tests/queries/0_stateless/03206_timezone_env.reference
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
UTC
|
||||||
|
Asia/Shanghai
|
||||||
|
Asia/Shanghai
|
||||||
|
Europe/Amsterdam
|
||||||
|
Poland
|
11
tests/queries/0_stateless/03206_timezone_env.sh
Executable file
11
tests/queries/0_stateless/03206_timezone_env.sh
Executable 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()";
|
Loading…
Reference in New Issue
Block a user