diff --git a/plugins/sql/src/decode/postgres.rs b/plugins/sql/src/decode/postgres.rs index 39c9acfd..03ddeeb8 100644 --- a/plugins/sql/src/decode/postgres.rs +++ b/plugins/sql/src/decode/postgres.rs @@ -17,14 +17,35 @@ pub(crate) fn to_json(v: PgValueRef) -> Result { JsonValue::Null } } - "FLOAT4" | "FLOAT8" => { + "FLOAT4" => { + if let Ok(v) = ValueRef::to_owned(&v).try_decode::() { + JsonValue::from(v) + } else { + JsonValue::Null + } + } + "FLOAT8" => { if let Ok(v) = ValueRef::to_owned(&v).try_decode::() { JsonValue::from(v) } else { JsonValue::Null } } - "INT2" | "INT4" | "INT8" => { + "INT2" => { + if let Ok(v) = ValueRef::to_owned(&v).try_decode::() { + JsonValue::Number(v.into()) + } else { + JsonValue::Null + } + } + "INT4" => { + if let Ok(v) = ValueRef::to_owned(&v).try_decode::() { + JsonValue::Number(v.into()) + } else { + JsonValue::Null + } + } + "INT8" => { if let Ok(v) = ValueRef::to_owned(&v).try_decode::() { JsonValue::Number(v.into()) } else {