From 8fc10ae98dfb6cc51230cd6c06f7ef603e909fe0 Mon Sep 17 00:00:00 2001 From: sneak Date: Wed, 31 Dec 2025 15:17:09 -0800 Subject: [PATCH] Fix NULL handling in GetWHOISStats query When the asns table is empty, SUM() returns NULL which cannot be scanned into an int. Wrap SUM expressions in COALESCE to return 0 instead of NULL. --- internal/database/database.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/database/database.go b/internal/database/database.go index 377d0b3..a7da1b5 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -1669,9 +1669,9 @@ func (d *Database) GetWHOISStats(ctx context.Context, staleThreshold time.Durati query := ` SELECT COUNT(*) as total, - SUM(CASE WHEN whois_updated_at IS NULL THEN 1 ELSE 0 END) as never_fetched, - SUM(CASE WHEN whois_updated_at IS NOT NULL AND whois_updated_at < ? THEN 1 ELSE 0 END) as stale, - SUM(CASE WHEN whois_updated_at IS NOT NULL AND whois_updated_at >= ? THEN 1 ELSE 0 END) as fresh + COALESCE(SUM(CASE WHEN whois_updated_at IS NULL THEN 1 ELSE 0 END), 0) as never_fetched, + COALESCE(SUM(CASE WHEN whois_updated_at IS NOT NULL AND whois_updated_at < ? THEN 1 ELSE 0 END), 0) as stale, + COALESCE(SUM(CASE WHEN whois_updated_at IS NOT NULL AND whois_updated_at >= ? THEN 1 ELSE 0 END), 0) as fresh FROM asns `