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]
