geoffreyclaude opened a new pull request, #21649: URL: https://github.com/apache/datafusion/pull/21649
## Which issue does this PR close? - Part of #19241. - Split out from #19390 following reviewer feedback to land the foundational refactor separately from the later optimizations. ## Rationale for this change The full `#19390` optimization stack is difficult to review as a single change because it combines architectural refactoring with multiple strategy-specific performance optimizations. The review discussion converged on landing the benchmark-only PR first, then isolating this refactor in its own PR before evaluating the later optimizations one by one. This PR keeps the public behavior the same while introducing the internal structure needed for follow-up `IN LIST` specialization work. ## What changes are included in this PR? - Refactors `InListExpr` from a single monolithic file into an `in_list/` module with focused submodules - Introduces the `StaticFilter` trait to decouple membership testing from `InListExpr` - Moves the existing primitive-list fast path into `primitive_filter.rs` - Keeps nested and complex types on a dedicated fallback path via `nested_filter.rs` - Separates result construction and strategy selection into dedicated helpers to reduce branching in the main expression implementation - Preserves the public API while creating a clearer foundation for the follow-up optimization PRs from `#19390` ## Are these changes tested? Yes. I validated this split with: - `cargo fmt --all` - `cargo clippy -p datafusion-physical-expr --all-targets --all-features -- -D warnings` - `cargo test -p datafusion-physical-expr in_list --lib` ## Are there any user-facing changes? No user-facing API changes. This is a refactor-only foundation for future `IN LIST` performance work. -- 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]
