fix: type mismatch BIGINT->INT4 and FLOAT8->FLOAT4 in traces and faces endpoints

- trace_agent_api: CAST trace_id, frame_number to int; CAST confidence to float4
- identities: CAST frame_number to int; CAST confidence to float4
- Fixes 500 errors on /traces, /trace/:id/faces, /faces/candidates
This commit is contained in:
Accusys
2026-05-19 18:09:25 +08:00
parent 47a480a5e2
commit 02ad015b86
2 changed files with 6 additions and 6 deletions

View File

@@ -89,10 +89,10 @@ async fn list_traces_sorted(
let query = format!(
"SELECT tt.*, fd.id AS sample_face_id FROM (
SELECT trace_id,
SELECT trace_id::int AS trace_id,
COUNT(*) AS face_count,
MIN(frame_number) AS start_frame,
MAX(frame_number) AS end_frame,
MIN(frame_number)::int AS start_frame,
MAX(frame_number)::int AS end_frame,
(MAX(frame_number) - MIN(frame_number))::float8 AS duration_sec,
AVG(confidence)::float8 AS avg_confidence
FROM {}
@@ -248,7 +248,7 @@ async fn list_trace_faces(
Option<i32>,
f32,
)> = sqlx::query_as(
&format!("SELECT id, frame_number, x, y, width, height, confidence \
&format!("SELECT id, frame_number::int, x, y, width, height, confidence::float4 \
FROM {} WHERE file_uuid = $1 AND trace_id = $2 \
ORDER BY frame_number ASC LIMIT $3 OFFSET $4",
crate::core::db::schema::table_name("face_detections"))