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
DPhyp Join Order Algorithm #14158
Comments
It's currently not completely clear what is missing in our planner to support any join order algorithm, like do our existing join operators (join pairs) have enough information declared, etc. Please add more information. |
From my perspective, the following parts are missing:
|
This is a general workflow how I would structure it: flowchart TD
A[Sql] -->B(Analyzed Statement)
B -->C(Planner)
C -->D(Logical Plan Tree)
D -->E(Enter Optimizer)
E -->F(Push down Filters/Projections for Cardinality Estimates)
F -->G(Match Join Operators)
G -->H(Build Join Graph)
H -->I(Run Join Order Algorithm)
I -->J(Rebuild Logical Plan Tree with new Join Order)
J -->K( Optimize Logical Plan Tree further)
K -->L(Build Execution Plan)
|
The Join Reordering will be integrated into an optimizer rule and operate on Logical Plans such as Collect/JoinPlan etc. The Logical Plans consist of all information to build a Graph. |
State-of-the-Art for Join Ordering is the DPhyp algorithm:
Roadmap:
References:
https://15721.courses.cs.cmu.edu/spring2020/papers/20-optimizer2/p539-moerkotte.pdf
The text was updated successfully, but these errors were encountered: