HappenLee opened a new pull request, #69659:
URL: https://github.com/apache/doris/pull/69659
### What problem does this PR solve?
Issue Number: None
Related PR: #67774
Problem Summary:
Backport #67774 to `branch-4.2`. Comparisons such as `a != b` and `a < b`
can use both columns' zone-map ranges to discard native segments and Parquet V2
row groups that cannot match. The existing slot-vs-literal path shares the same
six interval rules; dictionary and Bloom-filter gates remain unchanged.
The backport preserves branch-4.2's `BloomFilterProbe` interfaces instead of
importing the unrelated master metadata-probe/array-contains refactor. It also
retains the original NULL, NaN, string-bound, unsupported-type and legacy
Parquet safeguards, plus the unit and regression coverage.
**Branch-specific adaptation:** master already reads hidden version columns
through a constant reader with substituted zone maps. Branch-4.2 still
substitutes `__DORIS_VERSION_COL__` after reading a single-version rowset, so
this backport excludes that column's on-disk placeholder from both segment- and
page-level expression zone-map pruning. The original enabled/disabled
hidden-version regression is retained.
### Release note
Support column-to-column comparisons in expression zone-map pruning for
native segments and Parquet V2 row groups.
### Check List (For Author)
- Test:
- [ ] Regression test (not executed locally)
- [ ] Unit Test (local configuration blocked)
- [x] Manual test: static backport review, formatting and golden-label
consistency checks only; no runtime execution claimed.
- Passed: `build-support/clang-format.sh` and
`build-support/check-format.sh` with clang-format 16.0.6; `git diff --check`.
- Carried the original unit/regression tests. All 43 `qt_` labels match
the golden file, whose bytes are unchanged from the runner-generated source PR
output.
- Attempted `BUILD_TYPE=ASAN ./build.sh --be -j48`. The cached third-party
package lacks Paimon-Rust headers/archive; stopped the automatic full
dependency rebuild.
- Attempted `BUILD_TYPE=ASAN ./run-be-ut.sh -j48 --run
--filter='ExprZonemapFilterTest.*'`. Configuration stopped because the checkout
lacks the `contrib/openblas` and `contrib/faiss` CMake sources. No local
unit-test or regression runtime pass is claimed; CI validation is required.
- Behavior changed:
- [x] Yes. Additional predicates can prune; unsupported metadata stays
conservative, and hidden-version placeholders are excluded on this branch.
- Does this need documentation:
- [x] No. Backport of an existing feature.
No FE/BE protocol, storage-format, configuration, transaction or data-write
changes.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases and CI results
- [ ] 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]