fix(frontend): returning
matches desired columns
#9109
Closed
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.
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
returning
matches desired columns for vanilla table.Please explain IN DETAIL what the changes are in this PR and why they are needed:
Let
LogicalInsert
's schema be the returning schema (rather than its input's schema, for which may misalign with the table's schema).This leads to a side effect that the projection afterwards becomes identity, and thus being subject to
ProjectEliminationRule
(credits to @broccoliSpicy, nice catch). Therefore the rule is banned forproject -> dml
cases.This PR FAILS to solve the problem when the table contains generated columns, and it's banned in the binder phase (it will be tracked by another issue).
returning
fails matching specified target columns #9012Checklist For Contributors
- [ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features Sqlsmith: Sql feature generation #7934)../risedev check
(or alias,./risedev c
)Checklist For Reviewers
Documentation
- [ ] My PR DOES NOT contain user-facing changes.Click here for Documentation
Types of user-facing changes
Please keep the types that apply to your changes, and remove the others.
Release note
insert
withreturning
to a table with generated columns will be rejected at the binder phase.