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

   Backport of #18497 to Flink 2.2. When a dynamic-record generator reuses a 
binary buffer, the forward ORC writer can persist the last value for multiple 
rows even with object reuse disabled. `DynamicRecordInternalSerializer#copy` 
now deep copies the row data so buffered writes keep each emitted value. The 
change applied cleanly from `flink/v2.3` with no modifications.
   
   Test plan: the tests from #18497. `TestDynamicRecordInternalSerializer` 
checks that both `copy` overloads keep top-level values, nested binary values, 
and `RowKind` after the source row is mutated. 
`TestDynamicIcebergSink#forwardOrcWritePreservesReusedBinaryBuffer` writes two 
rows from one reused buffer through the forward ORC path and checks that both 
values are persisted. These tests fail on Flink 2.2 without the fix. 
`spotlessCheck`, `checkstyleMain`, `checkstyleTest`, and the 
`org.apache.iceberg.flink.sink.dynamic.*` tests pass locally (312 tests, 0 
failures).
   
   ---
   **AI Disclosure**
   - Model: Claude Opus 5.5
   - Platform/Tool: Cursor
   - Human Oversight: fully reviewed
   - Prompt Summary: Backport #18497 to Flink 2.2, one PR per Flink version. 
The code is the #18497 change applied unchanged to `flink/v2.2`; the port and 
this description are generated.
   


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