-
Notifications
You must be signed in to change notification settings - Fork 5.8k
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: support the transformation framework of the cascades planner #7869
Conversation
@eurekaka PTAL |
@eurekaka @lamxTyler PTAL |
Shall we include |
@eurekaka We should, but there's no logical property currently? |
/run-all-tests |
So this pr won't have unit-test? |
@winoros PTAL |
@lamxTyler Reset() function refactored, PTAL |
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.
LGTM
What problem does this PR solve?
support framework of the cascades planner.
What is changed and how it works?
- introduce a global session variable "tidb_enable_cascades_planner" to control whether to use the cascades planner.split to #7879- modify thesplit to #7879Optimize()
function to share some common code logic between the old planner and cascades planner.- implement thesplit to #7917Group
andGroupExpr
component.FindBestPlan()
functionconvert2Group()
function to convert a logical plan toGroup
onPhaseExploration()
function, which applies all the possible rules and transforms the expression to its equivalents.ExprIter
to extract and iterate all the group expressions which match the rule patternGetOperand()
function to only return the operand.Check List
Tests
Code changes
This change is