[Enhancement] Support Generated Column rewrite in complex Query (backport #50398) #50829
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.
In this pr:
a. Collect generated column expr mapping From QueryAnalyzer.
b. Introduce ReplaceScalarOperatorRule to replace the ScalarOperator match the generated column expression.
Note: All query structure support Generated Column rewriting obey a simple rule: the Generated Column and its ref columns output directly into the outer scope.
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 #50398 done by [Mergify](https://mergify.com). In this pr: 1. Refactor Generated Column rewrite code: a. Collect generated column expr mapping From QueryAnalyzer. b. Introduce ReplaceScalarOperatorRule to replace the ScalarOperator match the generated column expression. 2. Supprot View, JOIN with Subquery and CTE for Generated Column rewriting. 3. Support simple equivalent expression rewrite for generated column.
Note: All query structure support Generated Column rewriting obey a simple rule: the Generated Column and its ref columns output directly into the outer scope.
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: