From 148f892be07009d5fa472961f7334da32d4a683c Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Wed, 6 May 2026 19:06:11 +0800 Subject: [PATCH] fix(postgres): display SMALLINT/INT2 values instead of null (#118) Add i16 to the type fallback chain in pg_value_to_json. The sqlx driver requires INT2 to be decoded as i16 specifically; the existing i64/i32 attempts silently failed, causing smallint values to fall through to null. --- crates/dbx-core/src/db/postgres.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/dbx-core/src/db/postgres.rs b/crates/dbx-core/src/db/postgres.rs index 1443bdb10..a7333c2a7 100644 --- a/crates/dbx-core/src/db/postgres.rs +++ b/crates/dbx-core/src/db/postgres.rs @@ -74,6 +74,7 @@ fn pg_value_to_json(row: &PgRow, idx: usize, type_name: &str) -> serde_json::Val .map(serde_json::Value::String) .or_else(|_| row.try_get::(idx).map(|v| serde_json::Value::Number(v.into()))) .or_else(|_| row.try_get::(idx).map(|v| serde_json::Value::Number(v.into()))) + .or_else(|_| row.try_get::(idx).map(|v| serde_json::Value::Number(v.into()))) .or_else(|_| { row.try_get::(idx).map(|v| { serde_json::Number::from_f64(v).map(serde_json::Value::Number).unwrap_or(serde_json::Value::Null)