zeroshade commented on code in PR #317:
URL: https://github.com/apache/iceberg-go/pull/317#discussion_r1985407723


##########
manifest.go:
##########
@@ -1519,7 +1492,13 @@ func (f *fallbackManifestEntryV1) toEntry() 
*manifestEntryV1 {
        return &f.manifestEntryV1
 }
 
-func (m *manifestEntryV1) inheritSeqNum(manifest ManifestFile) {}
+func (m *manifestEntryV1) inherit(manifest ManifestFile) {
+       if m.Snapshot <= 0 {
+               m.Snapshot = manifest.SnapshotID()
+       }

Review Comment:
   So currently the only reason we have separate objects to represent V1 and V2 
manifests and entries (as opposed to the way Pyiceberg does it) is to leverage 
the ease of the Avro handling via the struct tags for ser/de. The differences 
in the schemas for V1/V2 means we need separate objects to handle the 
nullability and the Avro lib we're using here doesn't provide a good way to 
customize the encoding/decoding at a member level like that.
   
   That all said, it might be time to refactor this entire thing so that the 
ultimate object the consumer interacts with is consolidated and the differences 
are only handled at the point of encoding and decoding, to better generalize 
all the other operations. 
   
   I'll take a stab at it today and see how bad it is.
   
   As far as "so called fast appends", what do you mean?



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

Reply via email to