dimas-b commented on code in PR #8982: URL: https://github.com/apache/iceberg/pull/8982#discussion_r1686695087
########## format/spec.md: ########## @@ -1370,3 +1370,16 @@ Writing v2 metadata: * `sort_columns` was removed Note that these requirements apply when writing data to a v2 table. Tables that are upgraded from v1 may contain metadata that does not follow these requirements. Implementations should remain backward-compatible with v1 metadata requirements. + +## Appendix F: Implementation Notes + +This section covers topics not required by the specification but recommendations for systems implementing the Iceberg specification +to help maintain a uniform experience. + +### Point in Time Reads (Time Travel) + +Iceberg supports two types of histories for tables. A history of previous "current snapshots" stored in ["snapshot-log" table metadata](#table-metadata-fields) and [parent-child lineage stored in "snapshots"](#table-metadata-fields). These two histories +might indicate different snapshot IDs for a specific timestamp. The discrepancies can be caused by a variety of table operations (e.g. updating the `current-snapshot-id` of the table). + +When processing point in time queries the Iceberg community has chosen to use "snapshot-log" metadata to lookup the table state Review Comment: I think this recommendation affects REST catalog implementations. I believe this text is not normative, therefore REST catalog implementations that do not expose the full snapshot history in metadata JSON will not violate the spec. However, for the sake of clarity and considering that the field is option, I propose adding a phrase like "when the catalog makes the snapshot history available in the metadata JSON, time travel queries should be executed like this.... [existing spec text]. If a catalog does not expose the full snapshot history, time travel queries should provide clear messages in case they cannot find the appropriate snapshot". -- 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: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org