twuebi opened a new pull request, #1295:
URL: https://github.com/apache/iceberg-go/pull/1295

   Row-id inheritance was gated on the manifest file's own internal 
format-version (>= 3). A v1/v2-era manifest carried into an upgraded v3 table 
keeps its older format-version but is assigned a first_row_id when written into 
the v3 manifest list, and its data files must still inherit row IDs per the 
spec (First Row ID Inheritance, applies 'even if the data file is existing'). 
Gating on the manifest-list first_row_id instead fixes compaction silently 
dropping _row_id on mixed v2->v3 groups while the reference engine (Spark) 
preserves it.
   
   Also skip DELETED entries when advancing the inherited first_row_id, and 
advance only on files actually assigned, matching Java's idAssigner. The 
manifest-list writer reserves a manifest's id range as added+existing rows, so 
counting deleted entries let a live file following a deleted one overflow into 
the next manifest's range.
   
   Adds a regression test that upgrades a v2 table to v3 and compacts a mixed 
group, asserting every row's _row_id is preserved, and a manifest-reader test 
asserting deleted entries consume no row IDs.


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