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

   Summary
   
   - re-fetch the source Glue table after creating the rename destination and 
before deleting the source
   - roll back the destination table and fail the rename if the source table's 
VersionId or metadata location changed during the rename window
   - add regression coverage for source-table drift during rename alongside the 
existing rollback path
   
   Why
   
   Glue RenameTable currently snapshots the source table, creates the 
destination table from that snapshot, and then deletes the source table. If 
another writer commits between the initial GetTable and DeleteTable, the 
destination can point at stale metadata while the source entry holding the 
newer commit is deleted.
   
   Glue exposes VersionId optimistic locking on UpdateTable, but not on 
DeleteTable, so this change hardens rename by revalidating the source table 
immediately before delete and failing closed if it drifted.
   
   Testing
   
   - `go test ./catalog/glue -run 
'TestGlueRenameTable|TestGlueRenameTable_DeleteTableFailureRollback|TestGlueRenameTable_SourceTableChangedRollback|TestIsConcurrentModificationException'
 -count=1`
   - `go test ./catalog/glue -count=1`
   - `git diff --check`
   


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