lvyanquan opened a new pull request, #4606: URL: https://github.com/apache/flink-cdc/pull/4606
## Description This is a backport of #4588 (commit db45d06a1) to `release-3.7`. The original PR fixes incorrect update/delete handling in the Iceberg pipeline connector when writing to append-only (equality-delete-unsupported) tables: - **RowDataUtils**: `convertDataChangeEventToRowData` now takes a `supportsEqualityDeletes` flag. When equality deletes are unsupported, DELETE events are skipped (empty row list) so append-only writers ignore them, and UPDATE events emit only the after-image as INSERT instead of a before-image DELETE + after-image INSERT pair. - **IcebergWriter**: introduces a `TableWriterFactory` that pairs the writer factory with a `supportsEqualityDeletes` flag derived from the table's identifier field IDs, so delete capability matches the actual append/delta writer selection even when the table's identifier fields differ from the CDC schema's primary key. `processElement` no longer creates a writer for skipped rows, and `flush` only retains factories paired with active writers instead of clearing the whole cache. - **Tests**: adds `RowDataUtilsTest`, a new `IcebergWriterDeleteCapabilityTest`, and extends `IcebergWriterTest` to cover append-only update/delete behavior. Original PR: https://github.com/apache/flink-cdc/pull/4588 ## Verifying this change - Covered by the new/extended unit tests in `IcebergWriterDeleteCapabilityTest`, `RowDataUtilsTest` and `IcebergWriterTest`. ## Documentation - Does this pull request introduce a new feature? No (bug fix backport). -- 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]
