mrhhsg opened a new pull request, #66145:
URL: https://github.com/apache/doris/pull/66145
### What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary: Runtime filters that become ready after an OLAP scanner
opens are currently appended only to scanner residual conjuncts. Existing
segment readers therefore cannot use those filters to prune unread segments or
pages, nor can they filter rows before materialization. This change publishes
storage-safe late runtime filters through a shared immutable container,
installs reader-local expression contexts at batch boundaries, applies
segment/page zone-map pruning only to unconsumed scan ranges, and preserves
scanner residual filtering as a correctness fallback. It also disables
incompatible early-truncation paths, avoids copying unchanged remaining-range
bitmaps, and prevents synthesized hidden-column placeholder values from causing
incorrect pruning.
### Release note
Improve OLAP scans by applying late-arriving runtime filters inside segment
readers.
### Check List (For Author)
- Test: Regression test and Unit Test
- `BUILD_TYPE=ASAN ./build.sh --be --fe`
- `./run-be-ut.sh --run --filter='SegmentIteratorExprZonemapTest.*'`
(24/24 passed)
- Isolated local regression
`query_p0/runtime_filter/late_runtime_filter_storage_pushdown`: generated
output, normal rerun, and `-times 3` all passed
- `build-support/clang-format.sh` and `build-support/check-format.sh`
for the modified C++ files
- `git diff --check origin/master...HEAD`
- Behavior changed: Yes. Storage-safe late runtime filters can prune unread
pages and filter rows inside `SegmentIterator`, while scanner residual
filtering remains as the correctness fallback.
- Does this need documentation: No
--
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]