Skip to content

Commit 010323c

Browse files
xiaochaoren1SongZhen0704
authored andcommitted
feat: querier support final
1 parent d339009 commit 010323c

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

server/querier/engine/clickhouse/clickhouse.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1399,7 +1399,11 @@ func (e *CHEngine) TransFrom(froms sqlparser.TableExprs) error {
13991399
if e.DataSource != "" {
14001400
e.AddTable(fmt.Sprintf("%s.`%s.%s`", newDB, table, e.DataSource))
14011401
} else {
1402-
e.AddTable(fmt.Sprintf("%s.`%s`", newDB, table))
1402+
newDBTableStr := fmt.Sprintf("%s.`%s`", newDB, table)
1403+
if table == chCommon.TABLE_NAME_ALERT_EVENT {
1404+
newDBTableStr = newDBTableStr + " FINAL"
1405+
}
1406+
e.AddTable(newDBTableStr)
14031407
}
14041408
virtualTableFilter, ok := GetVirtualTableFilter(e.DB, e.Table)
14051409
if ok {

server/querier/engine/clickhouse/clickhouse_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,7 @@ var (
608608
name: "test_alert",
609609
db: "event",
610610
input: "SELECT Count(row), alert_policy, alert_policy_id, event_level, auto_service_0, auto_service_type_0, auto_service_type, auto_service FROM alert_event where auto_service='abc' AND auto_service_type_1=1 GROUP BY alert_policy, alert_policy_id, event_level, auto_service_0, auto_service_type_0, auto_service_type, auto_service LIMIT 1",
611-
output: []string{"SELECT dictGet('flow_tag.alarm_policy_map', 'name', (toUInt64(policy_id))) AS `alert_policy`, policy_id AS `alert_policy_id`, event_level, tag_string_values[indexOf(tag_string_names,'auto_service_0')] AS `auto_service_0`, tag_int_values[indexOf(tag_int_names,'auto_service_type_0')] AS `auto_service_type_0`, tag_int_values[indexOf(tag_int_names,'auto_service_type')] AS `auto_service_type`, tag_string_values[indexOf(tag_string_names,'auto_service')] AS `auto_service`, COUNT(1) AS `Count(row)` FROM event.`alert_event` WHERE if(indexOf(tag_string_names,'auto_service')=0 AND indexOf(tag_string_names,'auto_service_0')=0 AND indexOf(tag_string_names,'auto_service_1')=0,1!=1,(tag_string_values[indexOf(tag_string_names,'auto_service')] = 'abc' OR tag_string_values[indexOf(tag_string_names,'auto_service_0')] = 'abc' OR tag_string_values[indexOf(tag_string_names,'auto_service_1')] = 'abc')) AND if(indexOf(tag_int_names,'auto_service_type_1')=0,NULL,tag_int_values[indexOf(tag_int_names,'auto_service_type_1')]) = 1 GROUP BY `policy_id`, `event_level`, `auto_service_0`, `auto_service_type_0`, `auto_service_type`, `auto_service` LIMIT 1"},
611+
output: []string{"SELECT dictGet('flow_tag.alarm_policy_map', 'name', (toUInt64(policy_id))) AS `alert_policy`, policy_id AS `alert_policy_id`, event_level, tag_string_values[indexOf(tag_string_names,'auto_service_0')] AS `auto_service_0`, tag_int_values[indexOf(tag_int_names,'auto_service_type_0')] AS `auto_service_type_0`, tag_int_values[indexOf(tag_int_names,'auto_service_type')] AS `auto_service_type`, tag_string_values[indexOf(tag_string_names,'auto_service')] AS `auto_service`, COUNT(1) AS `Count(row)` FROM event.`alert_event` FINAL WHERE if(indexOf(tag_string_names,'auto_service')=0 AND indexOf(tag_string_names,'auto_service_0')=0 AND indexOf(tag_string_names,'auto_service_1')=0,1!=1,(tag_string_values[indexOf(tag_string_names,'auto_service')] = 'abc' OR tag_string_values[indexOf(tag_string_names,'auto_service_0')] = 'abc' OR tag_string_values[indexOf(tag_string_names,'auto_service_1')] = 'abc')) AND if(indexOf(tag_int_names,'auto_service_type_1')=0,NULL,tag_int_values[indexOf(tag_int_names,'auto_service_type_1')]) = 1 GROUP BY `policy_id`, `event_level`, `auto_service_0`, `auto_service_type_0`, `auto_service_type`, `auto_service` LIMIT 1"},
612612
}}
613613
)
614614

0 commit comments

Comments
 (0)