mrhhsg opened a new pull request, #66455:
URL: https://github.com/apache/doris/pull/66455

   ### What problem does this PR solve?
   
   Issue Number: None
   
   Related PR: None
   
   Problem Summary:
   
   IN-filter metadata pruning previously converted `HybridSet` values through 
generic literal and `Field` materialization paths. This duplicated the IN set 
for zonemap pruning and made Bloom pruning allocate owning `Field` objects for 
every candidate.
   
   This PR:
   
   - exposes typed `HybridSet` operations for owning min/max bounds, exact 
range membership, native byte matching, cloning, and digest reuse;
   - keeps only owning non-null min/max `Field` values for zonemap pruning and 
performs exact checks against the source typed set;
   - probes file Bloom filters directly from native `HybridSet` values with 
early exit, without building a `Field` vector;
   - maintains fast min/max and range summaries for tinyint/smallint bitset 
containers;
   - preserves published runtime-filter set immutability across multi-producer 
merges while avoiding a copy for a single producer;
   - keeps dictionary, ORC, and Parquet pruning behavior conservative for 
unsupported or mismatched types.
   
   Empty and NULL-only IN sets, embedded-NUL strings, borrowed string storage, 
deep clones, and `IN`/`IN_OR_BLOOM` merger behavior are covered by focused 
tests.
   
   ### Release note
   
   None
   
   ### Check List (For Author)
   
   - Test
       - [x] Regression test
           - `./run-regression-test.sh --conf 
output/local-regression/regression-conf-19700.groovy --run -d 
query_p1/expr_zonemap -s test_expr_zonemap_pruning_p1` (1/1 suite passed)
       - [x] Unit Test
           - `./run-be-ut.sh --run 
--filter='ExprZonemapFilterTest.*:HybridSetTest.*:RuntimeFilterMergerTest.*:ParquetBloomFilterPruningTest.*:FileScannerV2Test.ConditionCacheDigestIncludesRuntimeFilterPayload:RuntimeFilterExprSamplingTest.deep_clone_clones_impl_tree:NewOrcReaderTest.SargDirectIn*:ParquetExprTest.test_in'
 -j 16` (79/79 tests passed)
       - [x] Manual test
           - `BUILD_TYPE=ASAN ./build.sh --be --fe --be-extension-ignore 
paimon-scanner,preload-extensions -j 16`
           - `./build-support/check-format.sh`
           - `CLANG_TIDY_BINARY=/tmp/doris-clang-tidy-with-resource-dir 
./build-support/run-clang-tidy.sh --build-dir be/ut_build_ASAN`
           - `git diff --check origin/master...HEAD`
           - Focused benchmark list/run for 
`(GetMinMax|LegacyMaterialize|AnyMatchRaw)` (32/32 cases completed).
           - `./build.sh --benchmark -j 16` compiled, linked, and installed 
`benchmark_test`; later Java-extension packaging stopped at the existing Paimon 
SPI check because `org.apache.paimon.s3.S3Loader` is missing from 
`META-INF/services/org.apache.paimon.fs.FileIOLoader`. This is unrelated to the 
BE patch.
       - [ ] No need to test or manual test. Explain why:
   
   - Behavior changed:
       - [x] No.
       - [ ] Yes.
   
   - Does this need documentation?
       - [x] No.
       - [ ] Yes.
   
   ### 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]

Reply via email to