- 
                Notifications
    
You must be signed in to change notification settings  - Fork 170
 
          feat(expr-ir): Acero order_by, hashjoin , DataFrame.{filter,join}, Expr.is_{first,last}_distinct
          #3173
        
          New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Merged
      
      
    
  
     Merged
                    
  
    feat(expr-ir): Acero order_by, hashjoin , DataFrame.{filter,join}, Expr.is_{first,last}_distinct
  
  #3173
                      Changes from 17 commits
      Commits
    
    
            Show all changes
          
          
            53 commits
          
        
        Select commit
          Hold shift + click to select a range
      
      cb470b4
              
                refactor: Use `temp.column_name(s)` some more
              
              
                dangotbanned 23e9d43
              
                fix(typing): Resolve some cases for `flatten_hash_safe`
              
              
                dangotbanned f77bb4c
              
                feat(expr-ir): Impl `acero.sort_by`
              
              
                dangotbanned 36ddce0
              
                test: Port over `is_first_distinct` tests
              
              
                dangotbanned 0e49f57
              
                chore: Add `Compliant{Expr,Scalar}.is_{first,last}_distinct`
              
              
                dangotbanned a5f192c
              
                test: Update to cover `is_last_distinct` as well
              
              
                dangotbanned 6a1b08a
              
                feat(DRAFT): Initial `is_first_distinct` impl
              
              
                dangotbanned 1c026bf
              
                test: Port over more cases
              
              
                dangotbanned e7e8a04
              
                refactor: Generalize `is_first_distinct` impl
              
              
                dangotbanned 2d46521
              
                feat: Add `is_last_distinct`
              
              
                dangotbanned cfb775d
              
                refactor: Make both `is_*_distinct` methods, aliases
              
              
                dangotbanned 9db603b
              
                feat: (Properly) add `get_column`, `to_series`
              
              
                dangotbanned f8255d3
              
                chore: Add `pc.is_in` wrapper
              
              
                dangotbanned 6fe2a0a
              
                docs: Add detail to `FunctionFlags.LENGTH_PRESERVING`
              
              
                dangotbanned 938befb
              
                test: More test porting
              
              
                dangotbanned 516f4a6
              
                typo
              
              
                dangotbanned ead4e62
              
                feat(DRAFT): Some progress on `hashjoin` port
              
              
                dangotbanned 273bdcc
              
                fix: Correctly pass down join keys
              
              
                dangotbanned ce37617
              
                test: Port over inner, left & clean up
              
              
                dangotbanned 18ef26a
              
                test: Add `test_suffix`
              
              
                dangotbanned 94baf1e
              
                test: Add `how="cross"` tests
              
              
                dangotbanned 733b45a
              
                test: Add `how={"anti","semi"}` tests
              
              
                dangotbanned ce321e0
              
                test: replace `"antananarivo"`->`"a"`, `"bob"`->`"b"`
              
              
                dangotbanned cc0d379
              
                test: Port the other duplicate test
              
              
                dangotbanned dd40e3a
              
                test: Make all the xfails more visible
              
              
                dangotbanned d1a1785
              
                feat(DRAFT): Initial acero cross-join impl
              
              
                dangotbanned 77e55b3
              
                refactor: Only expose `acero.join_tables`
              
              
                dangotbanned 8f7d2f3
              
                chore: Start factoring-out `Table` dependency
              
              
                dangotbanned b0c2a4d
              
                Merge branch 'oh-nodes' into expr-ir/acero-order-by
              
              
                dangotbanned d42f5de
              
                refactor(typing): Use `IntoExprColumn` some more
              
              
                dangotbanned b8a58c1
              
                refactor: Split up `_parse_sort_by`
              
              
                dangotbanned 05c63fd
              
                Make a start on `DataFrame.filter`
              
              
                dangotbanned 025213d
              
                fill out slightly more `filter`
              
              
                dangotbanned 3e94449
              
                get typing working again (kinda)
              
              
                dangotbanned a611bc9
              
                feat(DRAFT): Support `filter(list[bool])`
              
              
                dangotbanned d514ad0
              
                feat: Support single `Series` as well
              
              
                dangotbanned d452920
              
                test: Use `parametrize`
              
              
                dangotbanned 4c7c23d
              
                feat: Add predicate expansion
              
              
                dangotbanned 2ebca30
              
                feat(expr-ir): Full `DataFrame.filter` support
              
              
                dangotbanned 1b66786
              
                test: Merge the anti/semi tests
              
              
                dangotbanned fd38911
              
                test: parametrize exception messages
              
              
                dangotbanned 3537cac
              
                test: relax more error messages
              
              
                dangotbanned b5ef86b
              
                typo
              
              
                dangotbanned 8433b2d
              
                test: Add `test_filter_mask_mixed`
              
              
                dangotbanned 7668abb
              
                fix: Raise on duplicate column names
              
              
                dangotbanned 3ca43d1
              
                cov
              
              
                dangotbanned 0f06479
              
                perf: Avoid multiple collections during cross join
              
              
                dangotbanned 7e9ee74
              
                test: Stop repeating the same data so many times
              
              
                dangotbanned 1523dbb
              
                test: Add some cases from polars
              
              
                dangotbanned a479f32
              
                fix: typing mypy
              
              
                dangotbanned 8e840e0
              
                feat(expr-ir): Full-er `DataFrame.filter` support
              
              
                dangotbanned af26916
              
                refactor: Simplify the `NonCrossJoinStrategy` split
              
              
                dangotbanned 6aaf75d
              
                test: Convert raising test into a conformance test
              
              
                dangotbanned File filter
Filter by extension
Conversations
          Failed to load comments.   
        
        
          
      Loading
        
  Jump to
        
          Jump to file
        
      
      
          Failed to load files.   
        
        
          
      Loading
        
  Diff view
Diff view
          Some comments aren't visible on the classic Files Changed page.
        
There are no files selected for viewing
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
      
      Oops, something went wrong.
        
    
  
      
      Oops, something went wrong.
        
    
  
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As of feat(expr-ir): Impl
acero.sort_by, I still need to make use of this in a plan.A good candidate might be in either/both of
over(order_by=...)narwhals/narwhals/_plan/arrow/expr.py
Lines 328 to 350 in f77bb4c
is_{first,last}_distinctis_first_distincttestsnarwhals/narwhals/_arrow/series.py
Lines 719 to 747 in 715be22