[ https://issues.apache.org/jira/browse/ARROW-14314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17537625#comment-17537625 ]
Antoine Pitrou edited comment on ARROW-14314 at 5/16/22 4:06 PM: ----------------------------------------------------------------- Because the sort must be stable. The values at indices [2, 3, 4] all have the value "b", so they must stay in the same order. was (Author: pitrou): Because the sort must be stable. The values with indices [2, 3, 4] are all null, so they must stay in the same order (either because the dictionary index is null or the dictionary value is null). > [C++] Sorting dictionary array not implemented > ---------------------------------------------- > > Key: ARROW-14314 > URL: https://issues.apache.org/jira/browse/ARROW-14314 > Project: Apache Arrow > Issue Type: Improvement > Components: C++ > Reporter: Neal Richardson > Priority: Major > Labels: kernel > Fix For: 9.0.0 > > > From R, taking the stock {{mtcars}} dataset and giving it a dictionary type > column: > {code} > mtcars %>% > mutate(cyl = as.factor(cyl)) %>% > Table$create() %>% > arrange(cyl) %>% > collect() > Error: Type error: Sorting not supported for type dictionary<values=string, > indices=int8, ordered=0> > ../src/arrow/compute/kernels/vector_array_sort.cc:427 VisitTypeInline(type, > this) > ../src/arrow/compute/kernels/vector_sort.cc:148 > GetArraySorter(*physical_type_) > ../src/arrow/compute/kernels/vector_sort.cc:1206 sorter.Sort() > ../src/arrow/compute/api_vector.cc:259 CallFunction("sort_indices", {datum}, > &options, ctx) > ../src/arrow/compute/exec/order_by_impl.cc:53 SortIndices(table, options_, > ctx_) > ../src/arrow/compute/exec/sink_node.cc:292 impl_->DoFinish() > ../src/arrow/compute/exec/exec_plan.cc:297 iterator_.Next() > ../src/arrow/record_batch.cc:318 ReadNext(&batch) > ../src/arrow/record_batch.cc:329 ReadAll(&batches) > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)