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

   ## Which issue does this PR close?
   
   - Closes #.
   
   ## Rationale for this change
   
   This PR refactors the InList expression implementation to prepare for 
performance optimizations described in #19241. The current monolithic structure 
in `in_list.rs` makes it difficult to add type-specific optimizations. By 
extracting the static filter components into separate modules, we create a 
clear extension point for adding specialized filters (e.g., branchless filters 
for primitives, short-string optimizations for Utf8View).
   
   This is a preliminary refactoring step with **no functional changes** - it 
purely reorganizes code to support the upcoming optimization work.
   
   ## What changes are included in this PR?
   
   ### Code Structure Refactoring
   
   1. **Extracted `StaticFilter` trait** into `in_list/filter.rs`
   2. **Extracted `ArrayStaticFilter` implementation** into 
`in_list/array_filter.rs`
   
   ### Benchmark Improvements
   
   4. **Enhanced benchmark coverage** in `benches/in_list.rs`
      - Added more data types: `UInt8`, `Int16`, `TimestampNanosecond`
      - Added list size of 28 to better test the 17-32 range
      - Increased array size from 1024 to 8192 for more stable measurements and 
to align on the default batch size
      - Reduced warm-up and measurement times for faster iteration during 
optimization work
   
   ## Are these changes tested?
   
   Yes, all existing tests pass. This is a pure refactoring with no functional 
changes:
   - The `StaticFilter` trait interface is unchanged
   - The `ArrayStaticFilter` implementation logic is identical
   - All existing InList tests continue to validate correctness
   - Enhanced benchmarks provide baseline measurements for future optimizations
   
   ## Are there any user-facing changes?
   
   No user-facing changes. This is an internal refactoring that:
   - Does not change any public APIs
   - Does not affect query results or behavior
   - Does not change performance (neutral refactoring)
   
   This prepares the codebase for the performance improvements described in 
#19241, which will follow in subsequent PRs.


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