[ 
https://issues.apache.org/jira/browse/ARROW-6892?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17202325#comment-17202325
 ] 

Jorge commented on ARROW-6892:
------------------------------

IMO this is still open. It is a cool task, though. A simple test is something 
along the lines of:
{code:java}
df = ctx.table("t")?;
df = df.select(vec![col("a")])?;
df = df.select(vec![col("a"), col("b") + 1])?;

let plan = df.to_logical_plan()
// plan must contain a single projection
{code}

> [Rust] [DataFusion] Implement optimizer rule to remove redundant projections
> ----------------------------------------------------------------------------
>
>                 Key: ARROW-6892
>                 URL: https://issues.apache.org/jira/browse/ARROW-6892
>             Project: Apache Arrow
>          Issue Type: New Feature
>          Components: Rust, Rust - DataFusion
>            Reporter: Andy Grove
>            Priority: Minor
>
> Currently we have code in the SQL query planner that wraps aggregate queries 
> in a projection (if needed) to preserve the order of the final results. This 
> is needed because the aggregate query execution always returns a result with 
> grouping expressions first and then aggregate expressions.
> It would be better (simpler, more readable code) to always wrap aggregates in 
> projections and have an optimizer rule to remove redundant projections. There 
> are likely other use cases where redundant projections might exist too.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to