This is an automated email from the ASF dual-hosted git repository.

stevenzwu 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 9961f9609a Spec: require monotonically increasing snapshot 
timestamp-ms in v4 (#16294)
9961f9609a is described below

commit 9961f9609a77139fe77f02ac8fe109bc40d28353
Author: Steven Zhen Wu <[email protected]>
AuthorDate: Mon Oct 12 10:10:48 2026 -0700

    Spec: require monotonically increasing snapshot timestamp-ms in v4 (#16294)
    
    In format version 4 and above, a snapshot's `timestamp-ms` must be
    strictly greater than the `timestamp-ms` of its parent snapshot on
    the same branch. The requirement applies only to snapshots committed
    while the table is at format version 4 or higher; root snapshots,
    and snapshots that existed before a table was upgraded to v4, are
    not constrained.
---
 format/spec.md | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/format/spec.md b/format/spec.md
index 1510c0dd5a..508de131be 100644
--- a/format/spec.md
+++ b/format/spec.md
@@ -966,6 +966,8 @@ A snapshot consists of the following fields:
     |            |            | _required_ | **`added-rows`**             | 
The upper bound of the number of rows with assigned row IDs, see [Row 
Lineage](#row-lineage) |
     |            |            | _optional_ | **`key-id`**                 | ID 
of the encryption key that encrypts the manifest list key metadata |
 
+When committed while the table is at version 4 or higher, a snapshot's 
`timestamp-ms` must be strictly greater than its parent snapshot's 
`timestamp-ms` on the same branch. Snapshots with no parent, and snapshots that 
were committed before a table was upgraded to v4 or higher, do not have this 
requirement.
+
 The snapshot summary's `operation` field is used by some operations, like 
snapshot expiration, to skip processing certain snapshots. Possible `operation` 
values are:
 
 * `append` -- Only data files were added and no files were removed.
@@ -1918,6 +1920,11 @@ Reading v4 metadata:
 * Relative paths must be resolved against the table location before use (see 
[Path Resolution](#path-resolution))
 * When `location` is omitted, the table location must be provided (see [Table 
Location Specification](#table-location-specification))
 
+Snapshot timestamp changes:
+
+* When committed while the table is at version 4 or higher, a snapshot's 
`timestamp-ms` must be strictly greater than its parent snapshot's 
`timestamp-ms` on the same branch.
+* Snapshots with no parent and snapshots that existed before a table was 
upgraded to v4 are not constrained.
+
 Equality deletes are prohibited in v4.
 
 * Writers must not add equality delete files to v4 tables; equality deletes 
cannot be added as an entry to a v4 manifest

Reply via email to