fallintoplace opened a new pull request, #1328:
URL: https://github.com/apache/iceberg-go/pull/1328

   Summary
   
   - dedupe transaction requirements by their full semantic payload instead of 
GetType() alone
   - preserve distinct requirements of the same type, including multiple 
AssertRefSnapshotID checks for different refs
   - add focused transaction regressions for distinct same-type requirements 
and repeated identical requirements
   
   Why
   
   Transaction.apply currently dedupes requirements by GetType() only. That 
drops semantically distinct requirements that share a type, especially 
AssertRefSnapshotID checks for different refs. Operations such as expiring 
snapshots can build multiple ref assertions, and collapsing them weakens 
optimistic concurrency control by letting commits proceed without validating 
every referenced branch or tag.
   
   Using the full requirement payload as the dedupe key keeps equivalent 
duplicates collapsed while preserving distinct assertions.
   
   Testing
   
   - go test ./table -run 
'TestTransactionApply(KeepsDistinctRequirementsOfSameType|DedupesEquivalentRequirementsWithinAndAcrossCalls)$'
 -count=1
   - go test ./table -count=1
   - go test ./... -run '^$' -count=1
   - go run github.com/golangci/golangci-lint/v2/cmd/[email protected] run 
--timeout=10m ./table/...
   - git diff --check


-- 
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