-
Notifications
You must be signed in to change notification settings - Fork 3.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
release-23.1: opt: fixup CTE stats on placeholder queries #99823
Conversation
During optbuilder phase we copy the initial expressions stats into the fake-rel but this value can change when placeholders are assigned so add code in AssignPlaceholders to rebuild the cte if the stats change. Fixes: #99389 Epic: none Release note (sql change): Prepared statements using placeholders in recursive CTEs sometimes did not re-optimize correctly after plugging in the parameters leading to poor plan choices, this has been fixed.
8cc92b2
to
8388be7
Compare
Thanks for opening a backport. Please check the backport criteria before merging:
If some of the basic criteria cannot be satisfied, ensure that the exceptional criteria are satisfied within.
Add a brief release justification to the body of your PR to justify this backport. Some other things to consider:
|
Let's hold off on merging this until v23.1.1. I've added the do-not-merge label for now. |
Should I wait to do 22.2 and 22.1 as well or is it fine for fixes to get backported to older releases before newer releases? Seems weird but probably benign. |
We can backport to 22.2 and 22.1 now. For 23.1 we're only merging blockers at the moment. |
Reminder: it has been 3 weeks please merge or close your backport! |
Removed DNM label, ready to go into 23.1 now. |
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.
Don't forget to add a release-justification.
Reviewed 2 of 2 files at r1, all commit messages.
Reviewable status: complete! 1 of 0 LGTMs obtained (waiting on @cucaroach, @DrewKimball, @msirek, and @rharding6373)
Backport 1/1 commits from #99433 on behalf of @cucaroach.
/cc @cockroachdb/release
During optbuilder phase we copy the initial expressions stats into the
fake-rel but this value can change when placeholders are assigned so add
code in AssignPlaceholders to rebuild the cte if the stats change.
Fixes: #99389
Epic: none
Release note: none
Release justification: Fixes issue with chosing optimal plan when using placeholders with CTE queries where only workaround was to not use placeholders.