amogh-jahagirdar commented on code in PR #17198:
URL: https://github.com/apache/iceberg/pull/17198#discussion_r3786896796


##########
format/spec.md:
##########
@@ -674,11 +674,13 @@ A manifest file must store the partition spec and other 
metadata as properties i
     | _optional_ | _required_ | `format-version`    | Table format version 
number of the manifest as a string                                              
                                       |
     |            | _required_ | `content`           | Type of content files 
tracked by the manifest: "data" or "deletes"                                    
                                      |
 
-The schema of a manifest file is defined by the `manifest_entry` struct, 
described in the following section.
+#### Content file uniqueness
+
+Within a snapshot, each content file must be referenced by at most one 
manifest entry across all manifests; otherwise, the snapshot has undefined 
behavior. Writers are not required to validate uniqueness at commit time.

Review Comment:
   I think this is probably stemming from my review a while back 
https://github.com/apache/iceberg/pull/17198#discussion_r3588578656 
   
   We've talked offline about this. I really think the spec needs to take a 
clear stance around the ADDED + DELETED case, and the "at most one _live_ 
entry" kinda steps over that. I think basically everyone agrees that it's not 
recommended and can lead to needless ambiguity when it comes to change 
detection and file cleanup. The scan planning portion covers readers and that's 
great but I feel like if we know there are scenarios that we know generally are 
bad ideas, and aren't much of a burden to writers to actually have to handle, 
we should probably not allow those in the spec in my opinion. It gives stronger 
guarantees about the format for consumers, which I think is worthwhile. 
   
   If we feel strongly about only "live" here, I'm OK because we could always 
make implementations better but this just feels like a simple thing to keep in 
the spec and have better guarantees to work with.



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