Andy Grove created ARROW-4465:
---------------------------------
Summary: [Rust] [DataFusion] Add support for ORDER BY
Key: ARROW-4465
URL: https://issues.apache.org/jira/browse/ARROW-4465
Project: Apache Arrow
Issue Type: Improvement
Components: Rust
Reporter: Andy Grove
Fix For: 0.13.0
As a user, I would like to be able to specify an ORDER BY clause on my query.
Work involved:
* Add OrderBy to LogicalPlan enum
* Write query planner code to translate SQL AST to OrderBy (SQL parser that we
use already supports parsing ORDER BY)
* Implement SortRelation
My high level thoughts on implementing the SortRelation:
* Create Arrow array of uint32 same size as batch and populate such that each
element contains its own index i.e. array will be 0, 1, 2, 3....
* Find a Rust crate for sorting that allows us to provide our own comparison
lambda
* Implement the comparison logic (probably can reuse existing execution code -
see filter.rs for how it implements comparison expressions)
* Use index array to store the result of the sort i.e. no need to rewrite the
whole batch, just the index
* Rewrite the batch after the sort has completed
It would also be good to see how Gandiva has implemented this
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)