fix(servers): return text[] for SELECT array[null] in PostgreSQL protocol (#9058)

fix(servers): return text array for null array literals

Signed-off-by: Tyagiquamar <mohdquamartyagi@gmail.com>
This commit is contained in:
Mohd Quamar Tyagi
2026-09-09 06:27:31 +00:00
committed by GitHub
parent 5706afdfeb
commit 6b9165f633
+7 -1
View File
@@ -255,7 +255,7 @@ pub(super) fn type_gt_to_pg(origin: &ConcreteDataType) -> Result<Type> {
&ConcreteDataType::Decimal128(_) => Ok(Type::NUMERIC),
&ConcreteDataType::Json(_) => Ok(Type::JSON),
ConcreteDataType::List(list) => match list.item_type() {
&ConcreteDataType::Null(_) => Ok(Type::UNKNOWN),
&ConcreteDataType::Null(_) => Ok(Type::TEXT_ARRAY),
&ConcreteDataType::Boolean(_) => Ok(Type::BOOL_ARRAY),
&ConcreteDataType::Int8(_) => Ok(Type::INT2_ARRAY),
&ConcreteDataType::Int16(_) | &ConcreteDataType::UInt8(_) => Ok(Type::INT2_ARRAY),
@@ -1300,6 +1300,12 @@ mod test {
use crate::SqlPlan;
use crate::postgres::handler::PgSqlPlan;
#[test]
fn test_null_array_maps_to_text_array() {
let array = ConcreteDataType::list_datatype(Arc::new(ConcreteDataType::null_datatype()));
assert_eq!(Type::TEXT_ARRAY, type_gt_to_pg(&array).unwrap());
}
#[test]
fn test_schema_convert() {
let column_schemas = vec![