[BugFix] skip add the alias into fieldMapping when order by expr not referenced this alias (backport #50546) #50565
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:
failed to execute
select v1 cc, v2 cc from tbl order by v3
with error infocolumn cc is ambiguous
What I'm doing:
order by expr may reference the alias. We need put the alias into the fieldMappings or the expressionToColumns.
if the alias not be used in the order by expr like:
select v1 cc, v2 cc from tbl order by v3
We just add the slotRef(cc) to columnRefOperator in the
expressionToColumns to ensure this projection can output v1 with alias cc, v2 with alias cc and v3.
We don't need to ensure the uniqueness of the alias in the fieldMappings.
if the alias used in the order by expr like:
select v1 v3, v2 cc from (select abs(v1) v1, abs(v2) v2, v3 from t0) t1 order by t1.v3
order by expr t1.v3 referenced the v1 with alias v3, we need set the fieldMappings to ensure order by
expr can be resolved.
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 #50546 done by [Mergify](https://mergify.com). ## Why I'm doing: failed to execute `select v1 cc, v2 cc from tbl order by v3` with error info `column cc is ambiguous` ## What I'm doing: order by expr may reference the alias. We need put the alias into the fieldMappings or the expressionToColumns. if the alias not be used in the order by expr like: `select v1 cc, v2 cc from tbl order by v3` We just add the slotRef(cc) to columnRefOperator in the expressionToColumns to ensure this projection can output v1 with alias cc, v2 with alias cc and v3. We don't need to ensure the uniqueness of the alias in the fieldMappings.
if the alias used in the order by expr like:
select v1 v3, v2 cc from (select abs(v1) v1, abs(v2) v2, v3 from t0) t1 order by t1.v3
order by expr t1.v3 referenced the v1 with alias v3, we need set the fieldMappings to ensure order by
expr can be resolved.
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: