kevinjqliu opened a new pull request, #3811: URL: https://github.com/apache/iceberg-python/pull/3811
## Summary - validate that explicitly replaced data files were not concurrently deleted - preserve successful retries when another file in the same or a different partition is deleted - add regression coverage for all three concurrency outcomes ## Rationale Follow-up to #3780. That change correctly moved explicit file partition matching out of the row-predicate projection path. For a low-level file overwrite, however, the row predicate can remain `AlwaysFalse`, so the existing predicate-based deleted-data-file validation does not run. If another transaction deletes the target file before the overwrite retries, the stale replacement could otherwise be appended and resurrect deleted data. This change validates the exact replaced files against concurrent data-file deletions. Partition records narrow the manifest scan, followed by exact file-path matching to avoid conflicts with unrelated files. ## Tests - `uv run --all-extras python -m pytest -q tests/table/test_commit_retry.py tests/table/test_validate.py tests/table/test_upsert.py tests/table/test_init.py::test_build_large_partition_predicate tests/table/test_init.py::test_overwrite_delete_data_file_on_bucket_partition` — 166 passed - ruff, ruff-format, mypy, and pydocstyle hooks passed for all changed files -- 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]
