You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Which issue does this PR close?
- Part of #19241.
- Addresses the duplication called out in
#21649 (comment).
## Rationale for this change
The existing primitive `IN LIST` static filters have separate integer
and float macros. The float version exists only to wrap values in
`OrderedFloat*` for hash/equality semantics, but the rest of the
implementation is copied from the integer path, including the SQL
three-valued-logic result construction.
This PR removes that duplication independently from the larger and more
controversial direct-probe optimization in #19390.
## What changes are included in this PR?
- Generalizes the existing `primitive_static_filter!` macro so it can
optionally use a different stored `HashSet` value type and conversion
function.
- Keeps the original two-argument `primitive_static_filter!(..., ...)`
form for integer filters.
- Keeps the original `float_static_filter!(..., ..., OrderedFloat*)`
call sites, but makes `float_static_filter!` delegate to
`primitive_static_filter!` instead of duplicating the full
implementation.
- Preserves the existing `HashSet` lookup strategy and `OrderedFloat*`
bit-pattern handling for `Float32` / `Float64`.
## Are these changes tested?
Yes.
## Are there any user-facing changes?
No. This is an internal refactor only.
0 commit comments