Commit a2c0c8a
Refactor InListExpr into static-filter modules (apache#21649)
## Which issue does this PR close?
- Part of apache#19241.
## Rationale for this change
This PR is a preparatory refactor for
[apache#19390](apache#19390).
`InListExpr` currently mixes expression evaluation, constant-list filter
construction, primitive-vs-fallback dispatch, and generic fallback
execution in one file.
This PR extracts the existing static-filter code into smaller internal
modules while preserving the current behavior.
## Review guide
This PR is intended to be a move/extract-only refactor. The main review
question is whether the existing `InListExpr` static-filter behavior has
been preserved while making the internal structure easier to follow.
In particular:
- `in_list.rs` still owns `InListExpr` construction and evaluation
- `primitive_filter.rs` contains the existing primitive numeric
static-filter implementations moved out of `in_list.rs`
- `array_static_filter.rs` contains the existing `ArrayStaticFilter`
fallback moved out of `in_list.rs`
- `strategy.rs` contains the existing dispatch between primitive filters
and `ArrayStaticFilter`
- `static_filter.rs` defines the shared internal trait used by those
extracted pieces
No user-facing behavior or API changes are intended in this PR.
## Are these changes tested?
Yes. I validated this PR with:
- `cargo fmt --all`
- `cargo clippy -p datafusion-physical-expr --all-targets --all-features
-- -D warnings`
- `cargo test -p datafusion-physical-expr --all-features`
## Are there any user-facing changes?
No. This is an internal refactor only.
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>1 parent 0ebecd5 commit a2c0c8a
5 files changed
Lines changed: 589 additions & 486 deletions
File tree
- datafusion/physical-expr/src/expressions
- in_list
0 commit comments