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]

Reply via email to