pujitha24 opened a new pull request, #4223: URL: https://github.com/apache/iceberg-python/pull/4223
<!-- Closes https://github.com/apache/iceberg-python/issues/4183 --> # Rationale for this change `Transaction._stage` deduplicated requirements by type only, so in a transaction writing two branches only the first `AssertRefSnapshotId` was sent. A concurrent change to the second branch was not detected and got overwritten. Requirements are now deduplicated by `(type, ref)` for `AssertRefSnapshotId`; all other types are unchanged. Duplicates within a single `_stage` call are also dropped now. ## Are these changes tested? Yes. Added `test_stage_keeps_ref_requirement_per_ref` (fails before the fix, passes after). The issue's repro script prints `[1, 2, 3]` before and `[1, 3]` after. `make lint` passes. In `tests/table/test_init.py`, 4 tests fail identically on `main` (missing optional modules in my env); `test_partitioning.py` also has failures on `main`. ## Are there any user-facing changes? Multi-branch transactions now assert every written branch, so a concurrent change to any of them raises a conflict and retries instead of being silently overwritten. Fixes #4183 -- 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]
