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