Commits


Jörn Horstmann authored and Andy Grove committed 30143fc493d
ARROW-9895: [Rust] Improve sorting kernels - sort_to_indices further splits up float64/float32 inputs into nulls/non-nan/nan, sorts the non-nan values and then concats those 3 slices according to the sort options. Nans are distinct from null and sort greater than any other valid value - implemented a sort method for dictionary arrays with string values. this kernel checks the is_ordered flag and sorts just by the keys if it is set, it will look up the string values otherwise - for the lexical sort use case the above kernel are not used, instead the OrdArray trait is used. To make that more flexible and allow wrapping arrays with differend ordering behavior I will make it no longer extend Array and instead only contain the cmp_value method - string dictionary sorting is then implemented with a wrapper struct StringDictionaryArrayAsOrdArray which implements OrdArray - NaN aware sorting of floats is then also implemented with a wrapper struct and trait implementation Closes #8092 from jhorstmann/ARROW-9895-improve-sort-kernels-and-lex-sort Authored-by: Jörn Horstmann <joern.horstmann@signavio.com> Signed-off-by: Andy Grove <andygrove73@gmail.com>