From 7081ba990761cd63c41417d15ed402149d7078bb Mon Sep 17 00:00:00 2001 From: Egor Vorontsov Date: Tue, 30 Dec 2025 17:29:48 +0300 Subject: [PATCH] Return Options as nullable values over PG Wire. --- crates/pg/src/encoder.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/crates/pg/src/encoder.rs b/crates/pg/src/encoder.rs index f5a6ed990ed..c6ffb8ea9ac 100644 --- a/crates/pg/src/encoder.rs +++ b/crates/pg/src/encoder.rs @@ -136,8 +136,15 @@ impl TypedWriter for PsqlFormatter<'_> { name: Option<&str>, value: ValueWithType, ) -> Result<(), Self::Error> { - // Is a simple enum? if let AlgebraicType::Sum(sum) = &ty.field.algebraic_type { + if sum.is_option() { + if *value.value() == AlgebraicValue::unit() { + self.write("")?; + } else { + self.write(satn::PsqlWrapper { ty, value })?; + } + return Ok(()); + } if sum.is_simple_enum() { if let Some(variant_name) = name { self.encoder.encode_field(&variant_name)?;