[auto-merge] release/26.04 to main [skip ci] [bot] - #14579
Merged
Conversation
…ctors [databricks] (#14572) Fixes #14564. ### Description The native Parquet footer reader filters row groups by byte range in C++ before serialization. When `ParquetFileReader.readFooter` deserializes the result, it computes row index offsets assuming those row groups are the entire file. For splits that contain only a subset of the file's row groups, the offsets are wrong (e.g. always 0 for a single surviving row group). This breaks deletion vector filtering which relies on file-global row indices — some deletions are missed and others are applied to the wrong rows. The JAVA footer reader does not have this issue because parquet-mr's `RangeMetadataFilter` computes offsets from all row groups in the file before filtering by byte range. This PR uses the new `ParquetFooter.getRowIndexOffsets` JNI method (NVIDIA/cudf-spark-jni#4445) to retrieve correct file-global offsets computed from all row groups before byte-range filtering, and apply them to the deserialized `BlockMetaData` objects after `ParquetFileReader.readFooter` reads the footer. Added `test_delta_deletion_vector_native_footer_multi_row_group` which demonstrates the bug. It creates a single-file Delta table with multiple row groups, deletes rows in later row groups, and forces per-row-group splits. It verifies whether the task assigned a non-first-row-group split correctly computes the row group offsets. ### Checklists Documentation - [ ] Updated for new or modified user-facing features or behaviors - [x] No user-facing change Testing - [x] Added or modified tests to cover new code paths - [ ] Covered by existing tests (Please provide the names of the existing tests in the PR description.) - [ ] Not required Performance - [ ] Tests ran and results are added in the PR description - [ ] Issue filed with a link in the PR description - [x] Not required --------- Signed-off-by: Jihoon Son <ghoonson@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Collaborator
Author
|
SUCCESS - auto-merge |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
auto-merge triggered by github actions on
release/26.04to create a PR keepingmainup-to-date. If this PR is unable to be merged due to conflicts, it will remain open until manually fix.