[Enhancement] Add enable_optimizer_rule_debug session variable for rule failure diagnosis (backport #63693) #64488
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why I'm doing:
Currently, when optimizer rules encounter bugs, users often see cryptic error messages like
Error 1064 (HY000): only found column statistics: {353: sum, 3}without knowing which specific rule caused the problem. This makes troubleshooting extremely difficult in production environments, as users cannot identify the problematic rule to apply workarounds.When optimizer rules fail, especially during complex query optimization phases, the error messages lack context about which transformation or validation rule triggered the failure. This creates significant challenges for both users and developers in diagnosing and resolving optimizer-related issues.
What I'm doing:
This PR introduces a new session variable
enable_optimizer_rule_debugto provide detailed debugging information when optimizer rules fail. The enhancement includes:New Session Variable:
enable_optimizer_rule_debugcbo_disabled_rulesfeature from PR #64269 to provide users with immediate workaroundsUsage Example:
--Rerun the failed query. When a rule fails, you'll see detailed output like:
-- Combined with cbo_disabled_rules for workarounds:
Fixes #issue
What type of PR is this:
Does this PR entail a change in behavior?
If yes, please specify the type of change:
Checklist:
Bugfix cherry-pick branch check:
This is an automatic backport of pull request #63693 done by [Mergify](https://mergify.com).