stevenzwu commented on code in PR #17822:
URL: https://github.com/apache/iceberg/pull/17822#discussion_r4288124476


##########
format/spec.md:
##########
@@ -965,11 +1087,25 @@ A snapshot consists of the following fields:
     |            |            | _required_ | **`first-row-id`**           | 
The first `_row_id` assigned to the first row in the first data file in the 
first manifest, see [Row Lineage](#row-lineage) |
     |            |            | _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 |
+=== "v4"
+    | v4         | Field                        | Description |
+    |------------|------------------------------|-------------|
+    | _required_ | **`snapshot-id`**            | A unique long ID |
+    | _optional_ | **`parent-snapshot-id`**     | The snapshot ID of the 
snapshot's parent. Omitted for any snapshot with no parent |
+    | _required_ | **`sequence-number`**        | A monotonically increasing 
long that tracks the order of changes to a table |
+    | _required_ | **`timestamp-ms`**           | A timestamp when the 
snapshot was created, used for garbage collection and table inspection |
+    | _required_ | **`manifest-list`**          | The location of a manifest 
list for this snapshot that tracks manifest files with additional metadata |
+    | _required_ | **`summary`**                | A string map that summarizes 
the snapshot changes, including `operation` as a _required_ field (see below) |
+    | _optional_ | **`schema-id`**              | ID of the table's current 
schema when the snapshot was created |
+    | _required_ | **`first-row-id`**           | The first `_row_id` assigned 
to the first row in the first data file in the first manifest, see [Row 
Lineage](#row-lineage) |
+    | _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 |
+    | _optional_ | **`constraint-statuses`**    | A struct (optional) that 
records the status of the table's constraints for the snapshot, see [Constraint 
Validation](#constraint-validation) |
 
 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.
-* `replace` -- Data and delete files were added and removed without changing 
table data; i.e., compaction, changing the data file format, or relocating data 
files.
+* `replace` -- Data and delete files were added and removed without changing 
table data; i.e., compaction, changing the data file format, or relocating data 
files. A snapshot that only records [constraint 
statuses](#constraint-validation) and does not add or remove files also uses 
`replace`.

Review Comment:
   ok, maybe it can be simplified. this is a bit too verbose.
   
   > i.e., compaction, changing the data file format, relocating data files, 
recording [constraint statuses](#constraint-validation) change.



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