Mryange opened a new pull request, #66903:
URL: https://github.com/apache/doris/pull/66903
Operator row descriptors and projection state were coupled through nullable
output descriptors and virtual descriptor accessors. As a result, projection
existence was inferred from pointer presence, Join operators overloaded generic
descriptor semantics, and Scan propagated nullable descriptors to distinguish
projected output.
Root cause: projection expressions, intermediate descriptors, and final
output descriptors were stored independently, while `row_desc()` represented
different execution stages depending on the operator.
This PR groups operator projection state into an optional
`OperatorProjection`, adds explicit projection queries, and distinguishes the
operator's original row descriptor from the final row descriptor exposed
downstream. Join uses a dedicated merged row descriptor, runtime-created Local
Exchange and Cache Source operators initialize their descriptor from the child,
and Scan carries explicit projection state without using a nullable descriptor
as a flag. The generic descriptor accessors are no longer virtual.
### Release note
None
### Check List (For Author)
- Test <!-- At least one of them must be included. -->
- [ ] Regression test
- [ ] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason <!-- Add your reason? -->
- Behavior changed:
- [ ] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [ ] No.
- [ ] Yes. <!-- Add document PR link here. eg:
https://github.com/apache/doris-website/pull/1214 -->
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR should
merge into -->
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]