Hi, Lincoln. Thanks for bringing this up. +1 for this FLIP, it's helpful for external storage system to implement partial update. The FLIP looks good to me. I only want to add one comment, update statement also doesn't support updating nested column, I have created FLINK-31344[1] to track it. Maybe we also need to explain it in this FLIP.
[1] https://issues.apache.org/jira/browse/FLINK-31344 Best regards, Yuxia ----- 原始邮件 ----- 发件人: "Lincoln Lee" <lincoln.8...@gmail.com> 收件人: "dev" <dev@flink.apache.org> 发送时间: 星期五, 2023年 3 月 03日 下午 12:22:19 主题: [DISCUSS] FLIP-300: Add targetColumns to DynamicTableSink#Context to solve the null overwrite problem of partial-insert Hi everyone, This FLIP[1] aims to support connectors in avoiding overwriting non-target columns with null values when processing partial column updates, we propose adding information on the target column list to DynamicTableSink#Context. FLINK-18726[2] supports inserting statements with specified column list, it fills null values (or potentially declared default values in the future) for columns not appearing in the column list of insert statement to the target table. But this behavior does not satisfy some partial column update requirements of some storage systems which allow storing null values. The problem is that connectors cannot distinguish whether the null value of a column is really from the user's data or whether it is a null value populated because of partial insert behavior. Looking forward to your comments or feedback. [1] https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=240885081 [2] https://issues.apache.org/jira/browse/FLINK-18726 Best, Lincoln Lee