Skip to content

Commit 5ce43ac

Browse files
branch-4.0: [fix](information_schema) Fix timezone format incompatibility when using offset timezone #58412 (#58480)
Cherry-picked from #58412 Co-authored-by: zy-kkk <[email protected]>
1 parent c3edf7a commit 5ce43ac

File tree

6 files changed

+16
-3
lines changed

6 files changed

+16
-3
lines changed

be/src/exec/schema_scanner.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ Status SchemaScanner::init(RuntimeState* state, SchemaScannerParam* param, Objec
159159
}
160160

161161
_param = param;
162+
_timezone = state->timezone();
162163
_timezone_obj = state->timezone_obj();
163164
_is_init = true;
164165

be/src/exec/schema_scanner.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ class SchemaScanner {
145145
std::atomic<bool> _eos = false;
146146
std::atomic<bool> _opened = false;
147147
std::atomic<bool> _async_thread_running = false;
148+
std::string _timezone;
148149
cctz::time_zone _timezone_obj;
149150
};
150151

be/src/exec/schema_scanner/schema_active_queries_scanner.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ Status SchemaActiveQueriesScanner::_get_active_queries_block_from_fe() {
6363
}
6464
schema_table_params.replay_to_other_fe = true;
6565
schema_table_params.__isset.replay_to_other_fe = true;
66-
schema_table_params.__set_time_zone(_timezone_obj.name());
66+
schema_table_params.__set_time_zone(_timezone);
6767

6868
TFetchSchemaTableDataRequest request;
6969
request.__set_schema_table_name(TSchemaTableName::ACTIVE_QUERIES);

be/src/exec/schema_scanner/schema_partitions_scanner.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ Status SchemaPartitionsScanner::get_onedb_info_from_fe(int64_t dbId) {
126126
schema_table_request_params.__set_current_user_ident(*_param->common_param->current_user_ident);
127127
schema_table_request_params.__set_catalog(*_param->common_param->catalog);
128128
schema_table_request_params.__set_dbId(dbId);
129-
schema_table_request_params.__set_time_zone(_timezone_obj.name());
129+
schema_table_request_params.__set_time_zone(_timezone);
130130

131131
TFetchSchemaTableDataRequest request;
132132
request.__set_schema_table_name(TSchemaTableName::PARTITIONS);

be/src/exec/schema_scanner/schema_processlist_scanner.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ SchemaProcessListScanner::~SchemaProcessListScanner() = default;
5757
Status SchemaProcessListScanner::start(RuntimeState* state) {
5858
TShowProcessListRequest request;
5959
request.__set_show_full_sql(true);
60-
request.__set_time_zone(state->timezone_obj().name());
60+
request.__set_time_zone(state->timezone());
6161

6262
for (const auto& fe_addr : _param->common_param->fe_addr_list) {
6363
TShowProcessListResult tmp_ret;

regression-test/suites/external_table_p0/info_schema_db/test_information_schema_timezone.groovy

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,4 +225,15 @@ suite("test_information_schema_timezone", "p0,external,hive,kerberos,external_do
225225

226226
// set time_zone back
227227
sql """ SET time_zone = "Asia/Shanghai" """
228+
229+
// 8. Test offset format timezone (e.g. +08:00)
230+
// This tests the fix for cctz returning "Fixed/UTC+08:00:00" format
231+
sql """ SET time_zone = '+08:00' """
232+
sql """
233+
select a.*, b.*, c.NAME as WORKLOAD_GROUP_NAME
234+
from information_schema.active_queries a
235+
left join information_schema.backend_active_tasks b on a.QUERY_ID = b.QUERY_ID
236+
left join information_schema.workload_groups c on a.WORKLOAD_GROUP_ID = c.ID
237+
"""
238+
sql """ SET time_zone = "Asia/Shanghai" """
228239
}

0 commit comments

Comments
 (0)