geoffreyclaude opened a new pull request, #23035:
URL: https://github.com/apache/datafusion/pull/23035

   ## Which issue does this PR close?
   
   - Part of #19241.
   - Stacked on #23012.
   - Next in stack: #23013.
   - Extracted from #19390.
   
   ## Rationale for this change
   
   #23011 and #23012 intentionally introduce the `UInt8` and `UInt16` bitmap 
filters as concrete implementations. With both widths visible, the shared shape 
is now clear: each filter builds a fixed-size bitmap from non-null `IN` list 
values and probes it with the input value's integer bit pattern.
   
   This PR factors that duplicated bitmap machinery behind a small shared 
configuration trait. It does not add a new lookup strategy or change which data 
types use bitmap filters. The next PR uses this shared shape to let same-width 
signed integers reuse the unsigned bitmap storage.
   
   ## What changes are included in this PR?
   
   - Adds `BitmapStorage` for fixed-size bitmap backing stores.
   - Adds `BitmapFilterConfig` to describe the Arrow type, native value, 
storage, and index conversion for each bitmap domain.
   - Replaces the concrete `UInt8BitmapFilter` and `UInt16BitmapFilter` 
implementations with `BitmapFilter<C>`.
   - Adds `UInt8BitmapConfig` and `UInt16BitmapConfig`.
   - Keeps `UInt8` and `UInt16` routing behavior unchanged.
   
   ## Are these changes tested?
   
   Yes.
   
   - `cargo fmt --all`
   - `cargo test -p datafusion-physical-expr bitmap_filter_ --lib`
   - `cargo test -p datafusion-physical-expr in_list_int_types --lib`
   - `cargo test -p datafusion-physical-expr 
test_in_list_from_array_type_combinations --lib`
   - `cargo test -p datafusion-physical-expr test_in_list_dictionary_types 
--lib`
   - `cargo clippy -p datafusion-physical-expr --all-targets --all-features -- 
-D warnings`
   
   ## Are there any user-facing changes?
   
   No. This is an internal refactor only.
   
   <!-- codex-benchmark-start -->
   ## Benchmark note
   
   No local benchmark numbers are included for this PR because it is intended 
to be a behavior-preserving refactor of the bitmap filter implementation. 
Benchmarks were not rerun for this stack split.
   <!-- codex-benchmark-end -->
   


-- 
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