[ 
https://issues.apache.org/jira/browse/FLINK-24054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17407237#comment-17407237
 ] 

Arvid Heise commented on FLINK-24054:
-------------------------------------

If the external system strictly follows +I key +I key, you will get a primary 
key violation. This would be the case if CDC is used to update a database. 
Having +I key +U key is correct and wouldn't require workarounds downstream. 

However, for kafka eliminating superfluous tombstones records is most important 
(e.g. what BufferedSinkFunction/ReducingSinkWriter is doing). So I'm fine to 
solve this issue later. But it must be documented for now.

> Let SinkUpsertMaterializer emit +U instead of only +I
> -----------------------------------------------------
>
>                 Key: FLINK-24054
>                 URL: https://issues.apache.org/jira/browse/FLINK-24054
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / Runtime
>            Reporter: Timo Walther
>            Assignee: Timo Walther
>            Priority: Blocker
>             Fix For: 1.14.0
>
>
> Currently, {{SinkUpsertMaterializer}} is not able to emit +U's but will 
> always emit +I's. Thus, resulting changelogs are incorrect strictly speaking 
> and only valid when treating +U and +I as similar changes in downstream 
> operators.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to