From b20f29d115971f17b0677c4108cb2a6ecc56ac68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9A=B4=E8=B5=B0=E7=9A=84=E5=B0=8F=E7=AC=BC=E5=8C=85?= Date: Tue, 25 Aug 2026 16:36:04 +0800 Subject: [PATCH] fix(channel-monitor-v2): fix composite platform aggregation SQL --- backend/internal/repository/channel_monitor_v2_aggregation.go | 2 +- backend/internal/repository/channel_monitor_v2_repo_test.go | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/internal/repository/channel_monitor_v2_aggregation.go b/backend/internal/repository/channel_monitor_v2_aggregation.go index 6ad2bbf9b3..9bec5877b5 100644 --- a/backend/internal/repository/channel_monitor_v2_aggregation.go +++ b/backend/internal/repository/channel_monitor_v2_aggregation.go @@ -255,7 +255,7 @@ WITH dedup AS ( -- group errors aggregate under platform 'composite', which is never an -- enabled config platform, and are filtered out of every monitor v2 query. lower(CASE - WHEN g.platform = 'composite' THEN COALESCE(NULLIF(TRIM(a.platform)), NULLIF(NULLIF(lower(TRIM(current_error.platform)), ''), 'composite'), 'unknown') + WHEN g.platform = 'composite' THEN COALESCE(NULLIF(TRIM(a.platform), ''), NULLIF(NULLIF(lower(TRIM(current_error.platform)), ''), 'composite'), 'unknown') ELSE COALESCE(NULLIF(TRIM(current_error.platform), ''), 'unknown') END) AS platform, COALESCE(current_error.group_id, 0) AS group_id, diff --git a/backend/internal/repository/channel_monitor_v2_repo_test.go b/backend/internal/repository/channel_monitor_v2_repo_test.go index 55c9a96460..82d5e61130 100644 --- a/backend/internal/repository/channel_monitor_v2_repo_test.go +++ b/backend/internal/repository/channel_monitor_v2_repo_test.go @@ -116,6 +116,8 @@ func TestChannelMonitorV2ErrorAggregationResolvesCompositePlatform(t *testing.T) require.Contains(t, query, "left join groups g on g.id = current_error.group_id") require.Contains(t, query, "left join accounts a on a.id = current_error.account_id") require.Contains(t, query, "a.platform") + require.Contains(t, query, "nullif(trim(a.platform), '')") + require.NotContains(t, query, "nullif(trim(a.platform))") } func TestChannelMonitorV2UsageSuccessExcludesCyberBillingRows(t *testing.T) {