fix(assets): SUM(size_bytes) 显式转 bigint 修复列表 500

Postgres 的 SUM(bigint) 返回 NUMERIC,tokio-postgres 反序列化为
i64 时类型不匹配,row.get(3) 直接 panic(release 的 panic=abort
下会崩掉整个进程)。COALESCE(..., 0)::bigint 修正。
This commit is contained in:
xfy 2026-07-24 16:50:30 +08:00
parent 45d70e1dc6
commit 8f75a64bfd

View File

@ -116,7 +116,7 @@ pub async fn list_assets(
COUNT(*) FILTER (WHERE NOT EXISTS (SELECT 1 FROM asset_refs r WHERE r.asset_id = a.id) \
AND a.created_at < NOW() - make_interval(days => $1)), \
COALESCE(SUM(a.size_bytes) FILTER (WHERE NOT EXISTS (SELECT 1 FROM asset_refs r WHERE r.asset_id = a.id) \
AND a.created_at < NOW() - make_interval(days => $1)), 0) \
AND a.created_at < NOW() - make_interval(days => $1)), 0)::bigint \
FROM assets a",
&[&PURGE_GRACE_DAYS],
)