-
Notifications
You must be signed in to change notification settings - Fork 608
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
refactor: simplify relational operators #2919
Comments
would for sure be +1 here maybe could even do this w/o breaking the world (eg back compatible) |
Yeah, I think this can be done in a backwards compatible way. The generated SQL for certain backends will almost certainly change though. |
+1 to this. We internally depend on it currently being projection (isinstance checks) but not a huge deal to update to using the new classes. |
@cpcloud is this issue still valid? |
@lostmygithubaccount Yep, happening as part of #7580! |
Done in |
Many logically distinct operations like filter, project, and aggregate are fused together into a single operation.
While this was useful initially for generating clean SQL, it has a number of downsides regarding maintenance and complexity of the library:
To the end of simplifying the design and maintenance of ibis, I propose two related internal changes.
Proposal:
Separate
Selection
into distinct operators for each operation:Whittle down
Aggregation
into a class with onlymetrics
andby
as instance members, and usewhere
to implement thehaving
API, andFilter
andOrderBy
to take the place ofpredicates
andsort_keys
respectively.The text was updated successfully, but these errors were encountered: