[jira] [Created] (FLINK-19446) canal-json has a situation that -U and +U are equal, when updating the null field to be non-null

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-19446) canal-json has a situation that -U and +U are equal, when updating the null field to be non-null

Shang Yuanchun (Jira)
Zhengchao Shi created FLINK-19446:
-------------------------------------

             Summary: 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: Zhengchao Shi
             Fix For: 1.12.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)