-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[fix](Nereids) fix leading tag can not work when leading is used #40958
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
Conversation
|
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
|
run buildall |
| CascadesContext outerCascadesCtx = CascadesContext.newContextWithCteContext( | ||
| ctx.cascadesContext, logicalCTE.child(), result.first); | ||
| outerCascadesCtx.newAnalyzer().analyze(); | ||
| ctx.cascadesContext.setLeadingDisableJoinReorder(outerCascadesCtx.isLeadingDisableJoinReorder()); |
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.
add test case please
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.
done
TPC-H: Total hot run time: 41958 ms |
TPC-DS: Total hot run time: 194491 ms |
ClickBench: Total hot run time: 31.94 s |
e45cb1d to
f070eea
Compare
|
run buildall |
f070eea to
ac7ac65
Compare
|
run buildall |
|
run p0 |
ac7ac65 to
f7b6ac9
Compare
|
run buildall |
|
run feut |
|
run external |
|
run cloud_p0 |
1 similar comment
|
run cloud_p0 |
|
run buildall |
1 similar comment
|
run buildall |
|
run compile |
|
run p0 |
|
run cloud_p0 |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
6510e87 to
26479ca
Compare
|
run buildall |
|
PR approved by at least one committer and no changes requested. |
…che#40958) isLeading in cascade context means do we have leading in this scope isLeadingDisableJoinReorder means does leading used we need to copy it after analyze outerside of cte
…che#40958) isLeading in cascade context means do we have leading in this scope isLeadingDisableJoinReorder means does leading used we need to copy it after analyze outerside of cte
…che#40958) isLeading in cascade context means do we have leading in this scope isLeadingDisableJoinReorder means does leading used we need to copy it after analyze outerside of cte
…#41869) pick: #35925 #39715 #40167 #40958 Add feat of force use/nouse cbo rule hint and fix pr introduce when not using this hint, cbo rules like INFER_SET_OPERATOR_DISTINCT would generate two plans and compare their cost and nereids optimizer would decide which is better. But when we want to control the behavior of cbo rules we could use this force cbo rule hint usage example explain shape plan select /*+ USE_CBO_RULE(INFER_SET_OPERATOR_DISTINCT) */ * from t1 union select * from t2; the USE_CBO_RULE(INFER_SET_OPERATOR_DISTINCT) hint would force rule INFER_SET_OPERATOR_DISTINCT to be used and generate plan like, which hashAgg below union is generated by this rule: -- !with_hint_union_distinct -- ----hashAgg[GLOBAL] --------hashAgg[LOCAL] ----------PhysicalUnion --------------hashAgg[LOCAL] ----------------PhysicalOlapScan[t1] --------------hashAgg[LOCAL] ----------------PhysicalOlapScan[t2] Hint log: Used: INFER_SET_OPERATOR_DISTINCT UnUsed: SyntaxError: When we want to force disable this rule, we could use explain shape plan select /*+ NO_USE_CBO_RULE(INFER_SET_OPERATOR_DISTINCT) */ * from t1 union select * from t2; which would generate plan with this rule: -- !with_hint_no_union_distinct -- ----hashAgg[GLOBAL] --------hashAgg[LOCAL] ----------PhysicalUnion --------------PhysicalOlapScan[t1] --------------PhysicalOlapScan[t2] Hint log: Used: NO_INFER_SET_OPERATOR_DISTINCT UnUsed: SyntaxError: change sessionvariable enableNereidsRules to varType.remove
isLeading in cascade context means do we have leading in this scope
isLeadingDisableJoinReorder means does leading used
we need to copy it after analyze outerside of cte