You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2022/12/02 18:43:26 UTC
[GitHub] [arrow-rs] tustvold commented on a diff in pull request #3238: Enable casting between Dictionary of DecimalArray and DecimalArray
tustvold commented on code in PR #3238:
URL: https://github.com/apache/arrow-rs/pull/3238#discussion_r1038427806
##########
arrow-cast/src/cast.rs:
##########
@@ -693,6 +784,36 @@ pub fn cast_with_options(
Float64 => {
cast_decimal_to_float!(array, scale, Float64Builder, f64)
}
+ Dictionary(index_type, value_type) => match **index_type {
Review Comment:
These appear to duplicate a block lower down in the match tree
```
(Dictionary(index_type, _), _) => match **index_type {
Int8 => dictionary_cast::<Int8Type>(array, to_type, cast_options),
Int16 => dictionary_cast::<Int16Type>(array, to_type, cast_options),
Int32 => dictionary_cast::<Int32Type>(array, to_type, cast_options),
Int64 => dictionary_cast::<Int64Type>(array, to_type, cast_options),
UInt8 => dictionary_cast::<UInt8Type>(array, to_type, cast_options),
UInt16 => dictionary_cast::<UInt16Type>(array, to_type, cast_options),
UInt32 => dictionary_cast::<UInt32Type>(array, to_type, cast_options),
UInt64 => dictionary_cast::<UInt64Type>(array, to_type, cast_options),
_ => Err(ArrowError::CastError(format!(
"Casting from dictionary type {:?} to {:?} not supported",
from_type, to_type,
))),
},
(_, Dictionary(index_type, value_type)) => match **index_type {
Int8 => cast_to_dictionary::<Int8Type>(array, value_type, cast_options),
Int16 => cast_to_dictionary::<Int16Type>(array, value_type, cast_options),
Int32 => cast_to_dictionary::<Int32Type>(array, value_type, cast_options),
Int64 => cast_to_dictionary::<Int64Type>(array, value_type, cast_options),
UInt8 => cast_to_dictionary::<UInt8Type>(array, value_type, cast_options),
UInt16 => cast_to_dictionary::<UInt16Type>(array, value_type, cast_options),
UInt32 => cast_to_dictionary::<UInt32Type>(array, value_type, cast_options),
UInt64 => cast_to_dictionary::<UInt64Type>(array, value_type, cast_options),
_ => Err(ArrowError::CastError(format!(
"Casting from type {:?} to dictionary type {:?} not supported",
from_type, to_type,
))),
},
```
Perhaps we could just move the decimal matches lower?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org