diff --git a/arrow-cast/src/cast/mod.rs b/arrow-cast/src/cast/mod.rs index 0a44392a245c..5c892783d4a8 100644 --- a/arrow-cast/src/cast/mod.rs +++ b/arrow-cast/src/cast/mod.rs @@ -1472,7 +1472,7 @@ pub fn cast_with_options( (BinaryView, _) => Err(ArrowError::CastError(format!( "Casting from {from_type:?} to {to_type:?} not supported", ))), - (from_type, Utf8View) if from_type.is_numeric() => { + (from_type, Utf8View) if from_type.is_primitive() => { value_to_string_view(array, cast_options) } (from_type, LargeUtf8) if from_type.is_primitive() => { @@ -5258,9 +5258,6 @@ mod tests { assert_eq!("2018-12-25T00:00:00", c.value(1)); } - // Cast Timestamp to Utf8View is not supported yet - // TODO: Implement casting from Timestamp to Utf8View - // https://github.com/apache/arrow-rs/issues/6734 macro_rules! assert_cast_timestamp_to_string { ($array:expr, $datatype:expr, $output_array_type: ty, $expected:expr) => {{ let out = cast(&$array, &$datatype).unwrap(); @@ -5295,7 +5292,7 @@ mod tests { None, ]; - // assert_cast_timestamp_to_string!(array, DataType::Utf8View, StringViewArray, expected); + assert_cast_timestamp_to_string!(array, DataType::Utf8View, StringViewArray, expected); assert_cast_timestamp_to_string!(array, DataType::Utf8, StringArray, expected); assert_cast_timestamp_to_string!(array, DataType::LargeUtf8, LargeStringArray, expected); } @@ -5319,7 +5316,13 @@ mod tests { Some("2018-12-25 00:00:02.001000"), None, ]; - // assert_cast_timestamp_to_string!(array_without_tz, DataType::Utf8View, StringViewArray, cast_options, expected); + assert_cast_timestamp_to_string!( + array_without_tz, + DataType::Utf8View, + StringViewArray, + cast_options, + expected + ); assert_cast_timestamp_to_string!( array_without_tz, DataType::Utf8, @@ -5343,7 +5346,13 @@ mod tests { Some("2018-12-25 05:45:02.001000"), None, ]; - // assert_cast_timestamp_to_string!(array_with_tz, DataType::Utf8View, StringViewArray, cast_options, expected); + assert_cast_timestamp_to_string!( + array_with_tz, + DataType::Utf8View, + StringViewArray, + cast_options, + expected + ); assert_cast_timestamp_to_string!( array_with_tz, DataType::Utf8,