Skip to content

Commit bf35068

Browse files
authored
chore(query): expose query hashes in system processes (#19927)
feat(query): expose query hashes in system processes
1 parent a0bcc72 commit bf35068

4 files changed

Lines changed: 20 additions & 0 deletions

File tree

src/query/catalog/src/table_context.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ pub struct ProcessInfo {
129129
pub created_time: SystemTime,
130130
pub status_info: Option<String>,
131131
pub current_query_id: Option<String>,
132+
pub query_hash: String,
133+
pub query_parameterized_hash: String,
132134
}
133135

134136
#[derive(Debug, Clone, Eq, PartialEq)]

src/query/service/src/sessions/session_info.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ impl Session {
5959
.as_ref()
6060
.map(|qry_ctx| qry_ctx.get_status_info()),
6161
current_query_id: self.get_current_query_id(),
62+
query_hash: shared_query_context
63+
.as_ref()
64+
.map(|qry_ctx| qry_ctx.get_query_text_hash())
65+
.unwrap_or_default(),
66+
query_parameterized_hash: shared_query_context
67+
.as_ref()
68+
.map(|qry_ctx| qry_ctx.get_query_parameterized_hash())
69+
.unwrap_or_default(),
6270
}
6371
}
6472

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,11 +361,13 @@ DB.Table: 'system'.'columns', Table: columns-table_id:1, ver:0, Engine: SystemCo
361361
| 'process_rows' | 'system' | 'query_execution' | 'UInt64' | 'BIGINT UNSIGNED' | '' | '' | 'NO' | '' |
362362
| 'process_time_in_micros' | 'system' | 'query_execution' | 'UInt64' | 'BIGINT UNSIGNED' | '' | '' | 'NO' | '' |
363363
| 'processed' | 'system' | 'notification_history' | 'Nullable(Timestamp)' | 'TIMESTAMP' | '' | '' | 'YES' | '' |
364+
| 'query_hash' | 'system' | 'processes' | 'String' | 'VARCHAR' | '' | '' | 'NO' | '' |
364365
| 'query_id' | 'system' | 'backtrace' | 'String' | 'VARCHAR' | '' | '' | 'NO' | '' |
365366
| 'query_id' | 'system' | 'locks' | 'String' | 'VARCHAR' | '' | '' | 'NO' | '' |
366367
| 'query_id' | 'system' | 'query_cache' | 'String' | 'VARCHAR' | '' | '' | 'NO' | '' |
367368
| 'query_id' | 'system' | 'query_execution' | 'String' | 'VARCHAR' | '' | '' | 'NO' | '' |
368369
| 'query_id' | 'system' | 'task_history' | 'String' | 'VARCHAR' | '' | '' | 'NO' | '' |
370+
| 'query_parameterized_hash' | 'system' | 'processes' | 'String' | 'VARCHAR' | '' | '' | 'NO' | '' |
369371
| 'range' | 'system' | 'settings' | 'String' | 'VARCHAR' | '' | '' | 'NO' | '' |
370372
| 'referenced_column_name' | 'information_schema' | 'key_column_usage' | 'NULL' | 'NULL' | '' | '' | 'NO' | '' |
371373
| 'referenced_table_name' | 'information_schema' | 'key_column_usage' | 'NULL' | 'NULL' | '' | '' | 'NO' | '' |

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ impl SyncSystemTable for ProcessesTable {
7676
let mut processes_created_time = Vec::with_capacity(processes_info.len());
7777
let mut processes_status = Vec::with_capacity(processes_info.len());
7878
let mut processes_current_query_id = Vec::with_capacity(processes_info.len());
79+
let mut processes_query_hash = Vec::with_capacity(processes_info.len());
80+
let mut processes_query_parameterized_hash = Vec::with_capacity(processes_info.len());
7981

8082
for process_info in &processes_info {
8183
let data_metrics = &process_info.data_metrics;
@@ -122,6 +124,8 @@ impl SyncSystemTable for ProcessesTable {
122124
.clone()
123125
.unwrap_or("".to_owned()),
124126
);
127+
processes_query_hash.push(process_info.query_hash.clone());
128+
processes_query_parameterized_hash.push(process_info.query_parameterized_hash.clone());
125129
}
126130

127131
Ok(DataBlock::new_from_columns(vec![
@@ -143,6 +147,8 @@ impl SyncSystemTable for ProcessesTable {
143147
TimestampType::from_data(processes_created_time),
144148
StringType::from_data(processes_status),
145149
StringType::from_data(processes_current_query_id),
150+
StringType::from_data(processes_query_hash),
151+
StringType::from_data(processes_query_parameterized_hash),
146152
]))
147153
}
148154
}
@@ -186,6 +192,8 @@ impl ProcessesTable {
186192
TableField::new("created_time", TableDataType::Timestamp),
187193
TableField::new("status", TableDataType::String),
188194
TableField::new("current_query_id", TableDataType::String),
195+
TableField::new("query_hash", TableDataType::String),
196+
TableField::new("query_parameterized_hash", TableDataType::String),
189197
]);
190198

191199
let table_info = TableInfo {

0 commit comments

Comments
 (0)