diff --git a/kernel/src/engine/arrow_conversion.rs b/kernel/src/engine/arrow_conversion.rs index 0d7c2775a..fbfdb487a 100644 --- a/kernel/src/engine/arrow_conversion.rs +++ b/kernel/src/engine/arrow_conversion.rs @@ -179,6 +179,7 @@ impl TryFrom<&ArrowDataType> for DataType { match arrow_datatype { ArrowDataType::Utf8 => Ok(DataType::STRING), ArrowDataType::LargeUtf8 => Ok(DataType::STRING), + ArrowDataType::Utf8View => Ok(DataType::STRING), ArrowDataType::Int64 => Ok(DataType::LONG), // undocumented type ArrowDataType::Int32 => Ok(DataType::INTEGER), ArrowDataType::Int16 => Ok(DataType::SHORT), @@ -193,6 +194,7 @@ impl TryFrom<&ArrowDataType> for DataType { ArrowDataType::Binary => Ok(DataType::BINARY), ArrowDataType::FixedSizeBinary(_) => Ok(DataType::BINARY), ArrowDataType::LargeBinary => Ok(DataType::BINARY), + ArrowDataType::BinaryView => Ok(DataType::BINARY), ArrowDataType::Decimal128(p, s) => { if *s < 0 { return Err(ArrowError::from_external_error( @@ -216,9 +218,15 @@ impl TryFrom<&ArrowDataType> for DataType { ArrowDataType::List(field) => { Ok(ArrayType::new((*field).data_type().try_into()?, (*field).is_nullable()).into()) } + ArrowDataType::ListView(field) => { + Ok(ArrayType::new((*field).data_type().try_into()?, (*field).is_nullable()).into()) + } ArrowDataType::LargeList(field) => { Ok(ArrayType::new((*field).data_type().try_into()?, (*field).is_nullable()).into()) } + ArrowDataType::LargeListView(field) => { + Ok(ArrayType::new((*field).data_type().try_into()?, (*field).is_nullable()).into()) + } ArrowDataType::FixedSizeList(field, _) => { Ok(ArrayType::new((*field).data_type().try_into()?, (*field).is_nullable()).into()) }