RussellSpitzer commented on code in PR #18526:
URL: https://github.com/apache/iceberg/pull/18526#discussion_r4364562107
##########
format/spec.md:
##########
@@ -1071,6 +1077,23 @@ Inheriting sequence numbers through the metadata tree
allows writing a new manif
Inheritance does not apply to v1, which does not have inherited fields like
sequence number. When reading v1 manifests with no sequence number column,
sequence numbers for all files must default to 0.
+##### Commit Timestamp Inheritance
+
+In v4 and later, the `snapshot_timestamp` tracking field records the commit
time (the snapshot's `timestamp-ms` converted to microseconds) of the snapshot
that added or last modified a file's data, and is used to assign
`_last_updated_time` for [row lineage](#row-lineage).
+
+The snapshot's `timestamp-ms` is not known until the snapshot is successfully
committed and may change when a commit is retried, so writers set
`snapshot_timestamp` to `null` when the value must come from the committing
snapshot. Writers must set `snapshot_timestamp` for data file and leaf manifest
entries as follows:
+
+* An ADDED entry must have a `null` `snapshot_timestamp`.
+* An entry MODIFIED by column files must have a `null` `snapshot_timestamp`.
+* Any other entry written to a new manifest must have a non-null
`snapshot_timestamp` (inherited or previously persisted).
+
+When reading, a `null` commit timestamp is inherited:
Review Comment:
I find these lines a bit hard to read. There are a lot of clauses here.
maybe
Commit timestamps are inherited differently depending on the entry location:
* Root Manifest entries inherit from the snapshot's `timestamp-ms` converted
to microseconds
* Leaf Manifest entries inherit from commit timestamp of the Root Manifest
--
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]