abrarsher23 commented on PR #18288:
URL: https://github.com/apache/iceberg/pull/18288#issuecomment-5891814189

   Thanks for picking this up. I opened #18262 and have been testing a similar 
change, so here are two cases worth covering:
   
   1. **Rename or doc change on a key column in the same checkpoint.** 
`PositionDeleteTrackerKey` compares `Types.StructType`, and 
`NestedField.equals` also compares names, docs and defaults. The dynamic sink 
can update a column's doc on its own, so after such a change the second writer 
gets its own tracker and the duplicate comes back. Comparing field ID, type and 
optionality by position, which is what `StructLikeMap` compares, keeps the 
writers sharing.
   2. **Non-upsert mode.** The tracker is only created when `upsertMode()` is 
true. With equality fields and upsert off, `UPDATE_BEFORE` / `DELETE` still go 
through `delete(row)` and the same inserted-row lookup, so a CDC changelog 
across a schema change hits the same problem.
   


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