Ensure all SelectExpressions always have a SqlAliasManager #35570
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.
The SQL alias refactoring work in 9.0 assumed that only mutable SelectExpressions need a SqlAliasManager, which is incorrect: pushdown may be called on immutable SelectExpressions later in the query pipeline (e.g. SqlNullabilityProcessor). This means that even our immutable SelectExpressions aren't really fully immutable (again a blurring of the mutability line which we need to get rid of).
In the meantime, this PR ensures that all SelectExpressions always have SqlAliasManager, regardless of whether they're (supposedly) mutable or not.
/cc @lauxjpn @ChrisJollyAU. As you've worked around this issue in 9 in your providers, and we've gotten only one user report, I'll hold back proposing this for backporting in a patch. But we can revisit that based on user feedback.
Fixes #35507