alamb opened a new pull request #9703:
URL: https://github.com/apache/arrow/pull/9703


   # NOTE:
   Since is a fairly major backwards incompatible change (many callsites need 
to be updated, though mostly mechanically); I gathered some feedback on this 
approach in https://github.com/apache/arrow/pull/9692 and this is the PR I 
propose for merge. 
   
   I'll leave this open for several days and also send a note to the mailing 
lists for additional comment
   
   It is part of my overall plan to make the DataFusion optimizer more 
idiomatic and do much less copying 
[ARROW-11689](https://issues.apache.org/jira/browse/ARROW-11689)
   
   # Rationale:
   All callsites currently need an owned `Vec` (or equivalent) so they can pass 
in `&[Expr]` and then Datafusion copies all the `Expr`s. Many times the 
original `Vec<Expr>` is discarded immediately after use (I'll point out where 
this happens in a few places below). Thus I it would better (more idiomatic and 
often less copy/faster) to take something that could produce an iterator over 
Expr
   
   # Changes
   1. Change `Dataframe` so it takes `Vec<Expr>` rather than `&[Expr]`
   2. Change `LogicalPlanBuilder` so it takes `impl Iterator<Item=Expr>` rather 
than `&[Expr]`
   
   I couldn't figure out how to allow the `Dataframe` API (which is a Trait) to 
take an `impl Iterator<Item=Expr>`
   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to