tomighita opened a new pull request, #3504:
URL: https://github.com/apache/iceberg-rust/pull/3504

   ## Which issue does this PR close?
   
   - None yet; happy to file one if preferred.
   
   ## What changes are included in this PR?
   
   `UpdateSchemaAction` always assigns fresh field IDs. Callers that own their 
ID allocation (e.g. replaying a schema history whose IDs are already baked into 
data files) need to keep them.
   
   - `AddColumn` gains an optional `id` (builder setter). When set, the column 
and any fields nested in its type keep their IDs.
   - Fresh IDs for other additions in the same update start above the highest 
explicit ID.
   - Explicit IDs at or below `last_column_id` are rejected with 
`PreconditionFailed`, so a dropped column's ID can't be reused.
   
   ## Are these changes tested?
   
   Yes, unit tests in `update_schema.rs`: explicit IDs on a new struct 
(children numbered before the parent), on a column added to an existing struct, 
on a list-of-struct, mixing explicit and fresh IDs, and rejection of IDs that 
are `<= 0` or `<= last_column_id`, including nested ones.
   
   ## AI Disclosure
   
   Written with Claude Code; reviewed and tested by me.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


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