jordepic opened a new pull request, #16231:
URL: https://github.com/apache/iceberg/pull/16231

   Move per-record overrides (resolved equality fields, forward eligibility, 
distribution-mode resolution, and key-selector construction) onto DynamicRecord 
itself, and centralize how DynamicRecordProcessor builds and emits a 
DynamicRecordInternal behind a single DynamicRecordPlan abstraction with three 
implementations (CachedRecordPlan, DeferredUpdateRecordPlan, 
ImmediateUpdateRecordPlan). HashKeyGenerator keeps its selector cache and now 
delegates dispatch to DynamicRecord.keySelector. Existing equality-field-id 
resolution (user-supplied set, falling back to schema identifier fields) is 
reused unchanged.
   
   Existing routing functionality is preserved with one exception: forward 
records (null distribution mode) that resolve to a non-empty equality-field set 
no longer take the forward path. Forwarding such records can land rows sharing 
an equality key on different writer subtasks, where independent equality 
deletes can leave duplicates behind. They are now hash-distributed by their 
equality fields, matching the rest of the dynamic sink. The Forward Mode 
section of docs/docs/flink-writes.md notes this carve-out.
   
   Also corrects the DynamicRecord field reference in the docs: UpsertMode is a 
per-record write-time flag and does not override the table's 
write.upsert.enabled property.


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