@@ -70,6 +70,7 @@ pub(crate) fn into_pg_type(df_type: &DataType) -> PgWireResult<Type> {
7070 }
7171 }
7272 }
73+ DataType :: Utf8View => Type :: TEXT ,
7374 _ => {
7475 return Err ( PgWireError :: UserError ( Box :: new ( ErrorInfo :: new (
7576 "ERROR" . to_owned ( ) ,
@@ -161,6 +162,14 @@ get_primitive_list_value!(get_u64_list_value, UInt64Type, i64, |val: u64| {
161162get_primitive_list_value ! ( get_f32_list_value, Float32Type , f32 ) ;
162163get_primitive_list_value ! ( get_f64_list_value, Float64Type , f64 ) ;
163164
165+
166+ fn get_utf8_view_value ( arr : & Arc < dyn Array > , idx : usize ) -> & str {
167+ arr. as_any ( )
168+ . downcast_ref :: < StringViewArray > ( )
169+ . unwrap ( )
170+ . value ( idx)
171+ }
172+
164173fn get_utf8_value ( arr : & Arc < dyn Array > , idx : usize ) -> & str {
165174 arr. as_any ( )
166175 . downcast_ref :: < StringArray > ( )
@@ -249,6 +258,7 @@ fn encode_value(
249258 DataType :: Float32 => encoder. encode_field ( & get_f32_value ( arr, idx) ) ?,
250259 DataType :: Float64 => encoder. encode_field ( & get_f64_value ( arr, idx) ) ?,
251260 DataType :: Utf8 => encoder. encode_field ( & get_utf8_value ( arr, idx) ) ?,
261+ DataType :: Utf8View => encoder. encode_field ( & get_utf8_view_value ( arr, idx) ) ?,
252262 DataType :: LargeUtf8 => encoder. encode_field ( & get_large_utf8_value ( arr, idx) ) ?,
253263 DataType :: Binary => encoder. encode_field ( & get_binary_value ( arr, idx) ) ?,
254264 DataType :: LargeBinary => encoder. encode_field ( & get_large_binary_value ( arr, idx) ) ?,
0 commit comments