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]
