[ https://issues.apache.org/jira/browse/FLINK-19446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17254729#comment-17254729 ]
WangRuoQi commented on FLINK-19446: ----------------------------------- Is this issue fixed on version 1.13? > canal-json has a situation that -U and +U are equal, when updating the null > field to be non-null > ------------------------------------------------------------------------------------------------ > > Key: FLINK-19446 > URL: https://issues.apache.org/jira/browse/FLINK-19446 > Project: Flink > Issue Type: Bug > Components: Formats (JSON, Avro, Parquet, ORC, SequenceFile) > Affects Versions: 1.11.1 > Reporter: shizhengchao > Priority: Major > Fix For: 1.13.0 > > > line 118 in CanalJsonDeserializationSchema#deserialize method: > {code:java} > GenericRowData after = (GenericRowData) data.getRow(i, fieldCount); > GenericRowData before = (GenericRowData) old.getRow(i, fieldCount); > for (int f = 0; f < fieldCount; f++) { > if (before.isNullAt(f)) { > // not null fields in "old" (before) means the fields are > changed > // null/empty fields in "old" (before) means the fields are not > changed > // so we just copy the not changed fields into before > before.setField(f, after.getField(f)); > } > } > before.setRowKind(RowKind.UPDATE_BEFORE); > after.setRowKind(RowKind.UPDATE_AFTER); > {code} > if a field is null before update,it will cause -U and +U to be equal -- This message was sent by Atlassian Jira (v8.3.4#803005)