Repository navigation
feat: support bloom filters in native Iceberg writes #5724
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
NikitaMatskevich
wants to merge
32
commits into
apache:main
Choose a base branch
from
NikitaMatskevich:feat/iceberg-bloom-filter-writes
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+2,616
−48
Open
Changes from all commits
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
bd9675c
feat: support bloom filters in native Iceberg writes
NikitaMatskevich e24f5bd
feat: support Iceberg bloom filter write settings
NikitaMatskevich f15f476
fix: fall back for sanitized Iceberg bloom paths
NikitaMatskevich 07a77c1
test: gate Iceberg bloom shape properties independently
NikitaMatskevich e15137d
fix: match Iceberg-version bloom property support
NikitaMatskevich 90ac05d
fix: use Parquet 59 bloom filter APIs
NikitaMatskevich c229d8c
fix: satisfy formatting checks
NikitaMatskevich 15554e9
docs: describe Parquet 59 bloom folding
NikitaMatskevich 7419d02
fix: reject zero bloom filter FPP
NikitaMatskevich f45fc9a
fix: ignore unused bloom max byte caps
NikitaMatskevich c47ef21
test: document bloom folding after writes
NikitaMatskevich 1f4f4b0
test: lock bloom sizing parity across runtimes
NikitaMatskevich 485d798
refactor: group Iceberg bloom column settings
NikitaMatskevich d9343fa
fix: match Iceberg bloom path resolution by version
NikitaMatskevich 6b8c274
feat: make native Iceberg bloom folding opt-in
NikitaMatskevich ae68947
fix: integrate Bloom write opt-in with current Iceberg writer
NikitaMatskevich 19ef2d5
docs: clarify native Iceberg Bloom filter tradeoffs
NikitaMatskevich 1af729b
docs: simplify Bloom filter compatibility introduction
NikitaMatskevich 2901d47
docs: list exceptional Bloom filter fallback cases
NikitaMatskevich 120dd0e
docs: remove upstream folding work from user guide
NikitaMatskevich d24684d
docs: group Bloom write prerequisites under accepted divergences
NikitaMatskevich 0b2b6e5
fix: fall back for floating-point Iceberg Bloom writes
NikitaMatskevich 418b2de
fix: ignore unconfigured columns in Iceberg Bloom path checks
NikitaMatskevich 4f2bec2
fix: fall back for unidentified Iceberg Bloom naming conventions
NikitaMatskevich 77857aa
docs: clarify Iceberg Bloom opt-in and unused caps
NikitaMatskevich e28e33c
test: cover Iceberg Bloom parity across physical types
NikitaMatskevich 7554402
fix: bound Iceberg Bloom synthetic NDV search
NikitaMatskevich d0167b4
bench: compare native Iceberg Bloom writes
NikitaMatskevich 38e896b
bench: remove one-off Bloom measurement runner
NikitaMatskevich 4b0878d
fix: limit native Bloom writes to modern Iceberg runtimes
NikitaMatskevich 9c468b6
fix: remove redundant interpolation in Bloom write test
NikitaMatskevich 01c19f9
fix: remove unused Bloom test callback parameters
NikitaMatskevich File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One more file-level difference could go in this list.
build_writer_propertieskeeps parquet-rs's defaultBloomFilterPosition::AfterRowGroup, so each row group's filters follow that row group, while parquet-java writes every filter inParquetFileWriter.end()after the last row group. Readers find filters throughbloom_filter_offset, so I do not see one that could observe it, but listing it with that reason would match the other entries.