Replace ValuesNode::Expression with RowExpression #13079
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.
Description
This is a port of the Expression-To-RowExpression Migration feature in Presto. The plan is to follow the steps in their original migration to divide and conquer each PlanNode and Symbol. This PR is the port of ValuesNode, the following PRs would port PlanNodes following this order:
This is a port of an improvement in Presto, which is part of the multiple IR cleaning effort.
This PR is a change to the core query engine. The future PR may need to change SPI.
This change is transparent to end user, they viable difference is that when trying to run explain plan command, the Expression part in the PlanNode would be changed to RowExpression, which includes type information of the expression so it is more self-contained. But the end user should not notice the difference when executing a query.
Related issues, pull requests, and links
Original issue in Presto: prestodb/presto#12546.
Documentation
( ) No documentation is needed.
( ) Sufficient documentation is included in this PR.
( ) Documentation PR is available with #prnumber.
( ) Documentation issue #issuenumber is filed, and can be handled later.
Release notes
( ) No release notes entries required.
( ) Release notes entries required with the following suggested text: