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
refactor: fold the FilePruner creation gate into try_new; deprecate is_dynamic_physical_expr
The Parquet opener gated `FilePruner` creation on
`is_dynamic_physical_expr(p) || has_statistics()`, where `is_dynamic_physical_expr`
answered "is it dynamic?" via `snapshot_generation(p) != 0`.
`FilePruner` already classifies its predicate once (`DynamicFilterTracking`) to
drive the change tracker, so the same classification can answer the gate. Move
the decision into `FilePruner::try_new`: it returns `None` when the file has no
statistics struct, or when the predicate is purely static and the file has no
usable column statistics (planning already did everything such a pruner could).
A dynamic predicate is still accepted (it may prune via partition-value folding
even without column statistics). The opener now just calls `try_new`.
With its last internal caller gone, `is_dynamic_physical_expr` is deprecated
(since 55.0.0) rather than removed; downstream users should downcast to
`DynamicFilterPhysicalExpr` or use `DynamicFilterTracking`. See the 55.0.0
upgrade guide. `snapshot_generation` itself is unchanged (FFI vtable + proto).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments