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
chore: deprecate HashExpr; mirror lit(true) proto serde for MultiMapLookupExpr
HashExpr was only used by the CASE-routing dynamic filter that 82f5ee5
removed. Nothing in the workspace constructs one anymore. Mark it
`#[deprecated(since = "54.0.0", ...)]` per the API health guidelines,
pointing users at HashTableLookupExpr / MultiMapLookupExpr. Keep the
struct, proto wire format, re-exports, and unit tests intact so existing
serialized plans and downstream consumers still work during the
deprecation window; silence the resulting warnings with
`#[expect(deprecated)]` at the impl blocks, re-exports, proto
serializer/deserializer, and roundtrip test.
MultiMapLookupExpr holds Arc<Map>s in exactly the same way
HashTableLookupExpr does — those build-side hash tables can't cross the
wire. Extend the existing lit(true) short-circuit in
`serialize_physical_expr_with_converter` to cover MultiMapLookupExpr,
update the explanatory comment, re-export it from joins/{mod,
hash_join::mod}, and add a `roundtrip_multi_map_lookup_expr_to_lit`
test mirroring the existing HashTableLookupExpr one.
Refs: apache#21931 (comment)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
note = "Hash-join dynamic filters no longer route rows via a per-row hash + CASE. Use HashTableLookupExpr for single-map membership probes or MultiMapLookupExpr to OR across several maps in one hashing pass."
0 commit comments