fix(usage): cache-affinity 间隔查询将 interval_minutes 强制转为 DOUBLE PRECISION

This commit is contained in:
fawney19
2026-04-19 16:32:29 +08:00
parent c302dfe42d
commit d719a1329c

View File

@@ -2541,12 +2541,14 @@ intervals AS (
model, model,
CAST(EXTRACT(EPOCH FROM created_at) AS BIGINT) AS created_at_unix_secs, CAST(EXTRACT(EPOCH FROM created_at) AS BIGINT) AS created_at_unix_secs,
usage_id, usage_id,
EXTRACT(EPOCH FROM ( CAST((
created_at - LAG(created_at) OVER ( EXTRACT(EPOCH FROM (
PARTITION BY group_id created_at - LAG(created_at) OVER (
ORDER BY created_at ASC, usage_id ASC PARTITION BY group_id
) ORDER BY created_at ASC, usage_id ASC
)) / 60.0 AS interval_minutes )
)) / 60.0
) AS DOUBLE PRECISION) AS interval_minutes
FROM filtered_usage FROM filtered_usage
) )
SELECT SELECT
@@ -6193,6 +6195,11 @@ mod tests {
assert!(include_str!("sql.rs").contains("COALESCE(\"usage\".model, '') AS model")); assert!(include_str!("sql.rs").contains("COALESCE(\"usage\".model, '') AS model"));
} }
#[test]
fn usage_sql_cache_affinity_interval_query_casts_interval_minutes_to_double_precision() {
assert!(include_str!("sql.rs").contains("AS DOUBLE PRECISION) AS interval_minutes"));
}
#[test] #[test]
fn usage_sql_reads_http_audits_for_single_record_fetches() { fn usage_sql_reads_http_audits_for_single_record_fetches() {
assert!(super::FIND_BY_REQUEST_ID_SQL.contains("LEFT JOIN usage_http_audits")); assert!(super::FIND_BY_REQUEST_ID_SQL.contains("LEFT JOIN usage_http_audits"));