Skip to content

Commit 00ca290

Browse files
committed
Add support for UTF8View types
This adds support for UTF8View data types.
1 parent 7431970 commit 00ca290

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
@@ -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| {
161162
get_primitive_list_value!(get_f32_list_value, Float32Type, f32);
162163
get_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+
164173
fn 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

Comments
 (0)