-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Planner to move to Operator model #11626
Labels
Type: Enhancement
Logical improvement (somewhere between a bug and feature)
Type: RFC
Request For Comment
Comments
This was referenced Nov 2, 2022
This was referenced Mar 30, 2023
4 tasks
4 tasks
This was referenced Apr 22, 2023
4 tasks
4 tasks
This was referenced May 27, 2023
4 tasks
4 tasks
4 tasks
2 tasks
This was referenced Jun 11, 2023
4 tasks
4 tasks
4 tasks
4 tasks
This was referenced Aug 8, 2023
Merged
harshit-gangal
changed the title
Clean up planning data structures
Planner to move to Operator model
Sep 19, 2023
harshit-gangal
added
Type: Enhancement
Logical improvement (somewhere between a bug and feature)
and removed
Type: Internal Cleanup
labels
Sep 19, 2023
4 tasks
This was referenced Oct 16, 2023
Closing this as new operator model is used to plan all the queries. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Type: Enhancement
Logical improvement (somewhere between a bug and feature)
Type: RFC
Request For Comment
Internal Refactoring
Since forever, we have had the
logicalPlan
interface that is used during planning. This served us well on the V3 planner.In the gen4 work, we introduced the
Operator
interface that we use when doing the join ordering and route merging.Once that is done, we transform the operator tree to a logical plan tree to do the grouping/order by/limit planning.
Unfortunately, this means that in some situations we cannot decide early on if we can merge a route with another or not. For example when using derived tables and UNION, if the inner queries are using aggregation, we can't make a good decision during join ordering, and later when we do the aggregation planning, it's too late to merge the routes, because we are by then on logical plans instead.
What I want to do is:
sum(distinct col))
)Hopefully the refactoring should make the code easier to work with and understand as well.
The text was updated successfully, but these errors were encountered: