Commit aa3c9d3
authored
feat(parquet): add BloomFilterPropertiesBuilder (#9877)
# Which issue does this PR close?
- Closes #9667.
# Rationale for this change
No builder exists for `BloomFilterProperties`, so callers write
`BloomFilterProperties { fpp, ndv }` literals — pinning field layout to
the API and skipping fpp validation. `WriterPropertiesBuilder` also has
no setter that takes a built `BloomFilterProperties`.
# What changes are included in this PR?
- `BloomFilterPropertiesBuilder` (`with_fpp`, `with_max_ndv`, `build`,
`try_build`). Two entry points per discussion in the issue:
`BloomFilterProperties::builder()` and
`BloomFilterPropertiesBuilder::new()`.
- `WriterPropertiesBuilder::set_bloom_filter_properties` + per-column
variant. NDV from the passed-in struct is honoured (no row-group-size
override). For dynamic NDV, keep using `set_bloom_filter_enabled` /
`set_bloom_filter_fpp`.
- Renamed `set_bloom_filter_ndv` → `set_bloom_filter_max_ndv` (also
per-column). Old names are `#[deprecated(since = "59.0.0")]` aliases.
# Are these changes tested?
Yes — 10 new unit tests + a doc-test.
# Are there any user-facing changes?
Additive only. `set_bloom_filter_ndv` (and per-column) emit a
deprecation warning pointing to `_max_ndv`.1 parent 5d464b5 commit aa3c9d3
3 files changed
Lines changed: 341 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2798 | 2798 | | |
2799 | 2799 | | |
2800 | 2800 | | |
2801 | | - | |
| 2801 | + | |
2802 | 2802 | | |
2803 | 2803 | | |
2804 | 2804 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
384 | 384 | | |
385 | 385 | | |
386 | 386 | | |
387 | | - | |
| 387 | + | |
| 388 | + | |
388 | 389 | | |
389 | 390 | | |
390 | 391 | | |
| |||
0 commit comments