This is an automated email from the ASF dual-hosted git repository.
singhpk234 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/main by this push:
new 0004600588 Spec: fix impl note about snapshot ID generation (#14720)
0004600588 is described below
commit 00046005889c66ffc860bae012d7fc560e8f040a
Author: Dan LaRocque <[email protected]>
AuthorDate: Thu Jan 1 20:11:51 2026 -0800
Spec: fix impl note about snapshot ID generation (#14720)
---
format/spec.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/format/spec.md b/format/spec.md
index 57e8c7047e..43348d856c 100644
--- a/format/spec.md
+++ b/format/spec.md
@@ -1827,7 +1827,7 @@ Snapshot summary can include metrics fields to track
numeric stats of the snapsh
Writers should produce positive values for snapshot ids in a manner that
minimizes the probability of id collisions and should verify the id does not
conflict with existing snapshots. Producing snapshot ids based on timestamps
alone is not recommended as it increases the potential for collisions.
-The reference Java implementation uses a type 4 uuid and XORs the 4 most
significant bytes with the 4 least significant bytes then ANDs with the maximum
long value to arrive at a pseudo-random snapshot id with a low probability of
collision.
+The reference Java implementation uses a type 4 uuid and XORs the 8 most
significant bytes with the 8 least significant bytes then ANDs with the maximum
long value to arrive at a pseudo-random snapshot id with a low probability of
collision.
Java writes `-1` for "no current snapshot" with V1 and V2 tables and considers
this equivalent to omitted or `null`. This has never been formalized in the
spec, but for compatibility, other implementations can accept `-1` as `null`.
Java will no longer write `-1` and will use `null` for "no current snapshot"
for all tables with a version greater than or equal to V3.