Skip to content

Commit 7d3eebb

Browse files
mjgartonsunng87
authored andcommitted
Add support for UTF8View types
This adds support for UTF8View data types.
1 parent 0a52b70 commit 7d3eebb

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

datafusion-postgres/src/datatypes.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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| {
162163
get_primitive_list_value!(get_f32_list_value, Float32Type, f32);
163164
get_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+
165174
fn 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

Comments
 (0)