tustvold commented on code in PR #2680: URL: https://github.com/apache/arrow-rs/pull/2680#discussion_r966256276
########## arrow/src/compute/kernels/sort.rs: ########## @@ -311,41 +312,26 @@ pub fn sort_to_indices( ))); } }, - DataType::Dictionary(key_type, value_type) - if *value_type.as_ref() == DataType::Utf8 => - { - match key_type.as_ref() { - DataType::Int8 => { - sort_string_dictionary::<Int8Type>(values, v, n, &options, limit) - } - DataType::Int16 => { - sort_string_dictionary::<Int16Type>(values, v, n, &options, limit) - } - DataType::Int32 => { - sort_string_dictionary::<Int32Type>(values, v, n, &options, limit) - } - DataType::Int64 => { - sort_string_dictionary::<Int64Type>(values, v, n, &options, limit) - } - DataType::UInt8 => { - sort_string_dictionary::<UInt8Type>(values, v, n, &options, limit) - } - DataType::UInt16 => { - sort_string_dictionary::<UInt16Type>(values, v, n, &options, limit) - } - DataType::UInt32 => { - sort_string_dictionary::<UInt32Type>(values, v, n, &options, limit) - } - DataType::UInt64 => { - sort_string_dictionary::<UInt64Type>(values, v, n, &options, limit) - } - t => { - return Err(ArrowError::ComputeError(format!( - "Sort not supported for dictionary key type {:?}", - t - ))); - } - } + DataType::Dictionary(_, _) => { Review Comment: I don't think so, you could call sort_to_indices on the values array, which is only typed on the values type, and then to compare dictionary values you compare the indices you just computed, which is only typed on the dictionary key type. You therefore avoid the fanout? -- 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-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org