Mryange opened a new pull request, #69911:
URL: https://github.com/apache/doris/pull/69911
### What problem does this PR solve?
Issue Number: N/A
Problem Summary:
Scan output projections currently run on scanner threads before blocks are
queued, so CPU-heavy expressions delay block publication and duplicate the
common operator projection implementation. Move intermediate and final output
projections to pipeline threads, reuse the common implementation, and apply the
scan LIMIT before evaluating expressions. Keep scanner filtering and
small-block padding, and use the raw schema for queued blocks and their reuse.
### Release note
Run scan output projections on pipeline threads and skip expression
evaluation for rows discarded by the scan LIMIT.
### Check List (For Author)
- Test
- [ ] Unit Test: added coverage for raw blocks, LIMIT, intermediate
projections, NULLs, constants, empty blocks, error propagation, block reuse,
and memory reservation; not run.
- Validation: clang-format 16, build hygiene, and git diff --check
passed. Build and runtime tests were not run.
- Behavior changed:
- [x] Yes. Scan output projections run after the scan LIMIT on pipeline
threads; discarded rows no longer evaluate projection expressions.
- Does this need documentation?
- [x] No.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
--
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]