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

   Adds the foundational types, errors, and validator functions that a producer 
uses to detect conflicting concurrent commits before re-issuing its updates. 
   
   No producer is wired to use these yet, that step lands with next slice; this 
change is library plumbing only and has no behavior impact on existing paths.
   
     - IsolationLevel type with SERIALIZABLE and SNAPSHOT constants, plus 
write.delete.isolation-level / write.update.isolation-level property keys 
(matching Java's TableProperties names).
     - Four conflict sentinels that wrap table.ErrCommitFailed so the existing 
retry loop in doCommit continues to treat them as retryable conflicts.
     - ConflictContext walks AncestorsBetween (from the snapshot ancestry 
utility) to enumerate concurrent snapshots on the committer's branch and 
returns ErrCommitDiverged if the base snapshot is no longer on the branch.
     - Four validators matching Java's BaseRowDelta / BaseOverwriteFiles / 
BaseRewriteFiles:
         * ValidateDataFilesExist — pos-delete referenced files still reachable 
from current head.
         * ValidateAddedDataFilesMatchingFilter — no concurrent data-file add 
in the committer's filter region (manifest-level partition-summary pruning via 
the existing evaluators). * ValidateNoConflictingDataFiles — 
isolation-level-gated variant of the above for RowDelta eq-delete commits. * 
ValidateNoNewDeletesForRewrittenFiles — no concurrent position deletes 
targeting files a rewrite is replacing.
     - Per-spec filter projection cache so a walk across snapshots written 
under different partition spec ids reuses its projection work.
   
   Tests cover the framework's logic (isolation-level parsing, error wrapping, 
ConflictContext edge cases, validator short-circuit paths). 
   
   End-to-end conflict detection under real concurrent-snapshot conditions 
lives with the producer-wiring follow up PR.


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