JeonDaehong opened a new pull request, #3449: URL: https://github.com/apache/iceberg-rust/pull/3449
## Which issue does this PR close? None, found while reading `DeleteFileIndex`. ## What changes are included in this PR? The spec says equality deletes stored with an unpartitioned spec are global. Java decides this with `spec.isUnpartitioned()`, which is also true when every field is a void transform (what a v1 table keeps after dropping a partition field). Rust checked whether the partition tuple was empty, so such deletes were indexed under a `[null]` partition and never matched data files from the earlier, partitioned spec. Deleted rows came back. `DeleteFileContext` now carries the delete file's spec, and the index uses `PartitionSpec::is_unpartitioned`. If the spec is missing, it falls back to the old check. Position deletes are unchanged: Java scopes them by spec and partition too. ## Are these changes tested? Yes. `test_void_spec_equality_delete_is_global` fails on `main` (0 deletes applied) and passes here. `cargo test -p iceberg --lib`, clippy and fmt are clean. ## AI Disclosure I used Claude Code to help find this and draft the change. I checked the Java behavior, reviewed the code and ran the tests myself. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
