amogh-jahagirdar commented on code in PR #17198: URL: https://github.com/apache/iceberg/pull/17198#discussion_r3588602716
########## format/spec.md: ########## @@ -662,6 +662,10 @@ A manifest may store either data files or delete files, but not both because man A manifest stores files for a single partition spec. When a table’s partition spec changes, old files remain in the older manifest and newer files are written to a new manifest. This is required because a manifest file’s schema is based on its partition spec (see below). The partition spec of each manifest is also used to transform predicates on the table's data rows into predicates on partition values that are used during job planning to select files from a manifest. +#### Content file uniqueness + +Within a snapshot, each content file must be referenced by at most one live entry across all manifests. A snapshot in which more than one live entry references the same content file has undefined behavior. Writers are not required to validate uniqueness at commit time. Review Comment: To clarify what I mean, from a scan planning perspective sure we just pick the live file in the ADDED + DELETED case (the added one) but clearly from a change detection and cleanup perspective it's ambiguous and basically nobody intends to produce both in the same snapshot so I think we should harden the spec here. -- 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]
