Skip to content

Commit 3b1b239

Browse files
authored
feat(query): add created_time column to processes table (#15448)
1 parent 1bf37ce commit 3b1b239

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

src/query/service/tests/it/storages/testdata/columns_table.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ DB.Table: 'system'.'columns', Table: columns-table_id:1, ver:0, Engine: SystemCo
9292
| 'created_on' | 'system' | 'views' | 'Timestamp' | 'TIMESTAMP' | '' | '' | 'NO' | '' |
9393
| 'created_on' | 'system' | 'views_with_history' | 'Timestamp' | 'TIMESTAMP' | '' | '' | 'NO' | '' |
9494
| 'created_on' | 'system' | 'virtual_columns' | 'Timestamp' | 'TIMESTAMP' | '' | '' | 'NO' | '' |
95+
| 'created_time' | 'system' | 'processes' | 'Timestamp' | 'TIMESTAMP' | '' | '' | 'NO' | '' |
9596
| 'creator' | 'system' | 'background_jobs' | 'Nullable(String)' | 'VARCHAR' | '' | '' | 'YES' | '' |
9697
| 'creator' | 'system' | 'background_tasks' | 'Nullable(String)' | 'VARCHAR' | '' | '' | 'YES' | '' |
9798
| 'creator' | 'system' | 'stages' | 'Nullable(String)' | 'VARCHAR' | '' | '' | 'YES' | '' |

src/query/storages/system/src/processes_table.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
use std::sync::Arc;
1616
use std::time::Duration;
1717

18+
use chrono::DateTime;
19+
use chrono::Utc;
1820
use databend_common_catalog::table::Table;
1921
use databend_common_catalog::table_context::TableContext;
2022
use databend_common_exception::Result;
@@ -23,6 +25,7 @@ use databend_common_expression::types::number::UInt32Type;
2325
use databend_common_expression::types::number::UInt64Type;
2426
use databend_common_expression::types::NumberDataType;
2527
use databend_common_expression::types::StringType;
28+
use databend_common_expression::types::TimestampType;
2629
use databend_common_expression::utils::FromData;
2730
use databend_common_expression::DataBlock;
2831
use databend_common_expression::TableDataType;
@@ -69,11 +72,15 @@ impl SyncSystemTable for ProcessesTable {
6972
let mut processes_scan_progress_read_bytes = Vec::with_capacity(processes_info.len());
7073
let mut processes_mysql_connection_id = Vec::with_capacity(processes_info.len());
7174
let mut processes_time = Vec::with_capacity(processes_info.len());
75+
let mut processes_created_time = Vec::with_capacity(processes_info.len());
7276
let mut processes_status = Vec::with_capacity(processes_info.len());
7377

7478
for process_info in &processes_info {
7579
let data_metrics = &process_info.data_metrics;
7680
let scan_progress = process_info.scan_progress_value.clone().unwrap_or_default();
81+
82+
let created_time: DateTime<Utc> = process_info.created_time.into();
83+
let created_time = created_time.timestamp_micros();
7784
let time = process_info
7885
.created_time
7986
.elapsed()
@@ -96,6 +103,7 @@ impl SyncSystemTable for ProcessesTable {
96103
processes_scan_progress_read_bytes.push(scan_progress.bytes as u64);
97104
processes_mysql_connection_id.push(process_info.mysql_connection_id);
98105
processes_time.push(time);
106+
processes_created_time.push(created_time);
99107

100108
if let Some(data_metrics) = data_metrics {
101109
processes_data_read_bytes.push(data_metrics.get_read_bytes() as u64);
@@ -125,6 +133,7 @@ impl SyncSystemTable for ProcessesTable {
125133
UInt64Type::from_data(processes_scan_progress_read_bytes),
126134
UInt32Type::from_opt_data(processes_mysql_connection_id),
127135
UInt64Type::from_data(processes_time),
136+
TimestampType::from_data(processes_created_time),
128137
StringType::from_data(processes_status),
129138
]))
130139
}
@@ -166,6 +175,7 @@ impl ProcessesTable {
166175
TableDataType::Nullable(Box::new(TableDataType::Number(NumberDataType::UInt32))),
167176
),
168177
TableField::new("time", TableDataType::Number(NumberDataType::UInt64)),
178+
TableField::new("created_time", TableDataType::Timestamp),
169179
TableField::new("status", TableDataType::String),
170180
]);
171181

tests/sqllogictests/suites/base/06_show/06_0013_show_processlist.test

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,7 @@ select count() >= 1 from system.processes where type='HTTPQuery' and host='127.0
1414
1
1515

1616
statement error
17-
SHOW PROCESSLIST WHERE tt='default' LIMIT 2
17+
SHOW PROCESSLIST WHERE tt='default' LIMIT 2
18+
19+
statement ok
20+
select created_time from system.processes limit 1;

0 commit comments

Comments
 (0)