Conversation
CodSpeed Performance ReportMerging #3920 will not alter performanceComparing Summary
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3920 +/- ##
==========================================
- Coverage 78.46% 76.51% -1.96%
==========================================
Files 767 788 +21
Lines 97108 104323 +7215
==========================================
+ Hits 76193 79819 +3626
- Misses 20915 24504 +3589
🚀 New features to boost your workflow:
|
kevinzwang
left a comment
There was a problem hiding this comment.
As discussed offline, let's also add some tests to the optimizer rule.
There was a problem hiding this comment.
Remember to remove the prints from this file too. Also, wondering if we could generalize the extraction of expressions into logical ops since we're bound to have several of these.
| LogicalPlan::Window(_) => { | ||
| // Cannot push down past a Window because it changes the window calculation results | ||
| Ok(Transformed::no(plan)) | ||
| } |
There was a problem hiding this comment.
We might be able to push a projection past a window if the projection keeps all the columns necessary for window. Either way it's ok to not optimize it for now
src/daft-logical-plan/src/optimization/rules/unnest_subquery.rs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
I think we could implement logical window functions using only exprs. I don't think we need a logical plan node for it.
For reference, neither datafusion or polars have window functions on their logical plan, and only have it implemented as exprs (polars, datafusion)
|
@universalmind303 I don't think that's true, at least for datafusion. DataFusion has a |
oh how did i miss that 🤦. Go ahead and disregard that comment then. |
0902f33 to
fa64285
Compare
…hmetic window tests
kevinzwang
left a comment
There was a problem hiding this comment.
Reviewed everything except the optimization rule and the execution.
This PR is starting to get pretty unweildy to review, and probably also to follow-up on reviews from your side. Could you please separate out the PR into three stacked PRs?
- Just the definitions on the Python and logical plan side. Basically the skeleton, with the ability to create project nodes with window function expressions
- The ExtractWindowFunction optimizer rule, along with rust tests for the rule
- Swordfish execution for the window op
That way we can get the ball rolling a little more, and get things fully completed and into main incrementally.
Some more work towards implementing window functions for
test_basic.py, unclear where gap in my understanding is - keep getting unexpected errors when running tests