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]

Reply via email to