diff --git a/flink-connector-tidb-cdc/src/main/java/com/ververica/cdc/connectors/tidb/table/RowDataTiKVEventDeserializationSchemaBase.java b/flink-connector-tidb-cdc/src/main/java/com/ververica/cdc/connectors/tidb/table/RowDataTiKVEventDeserializationSchemaBase.java index 23bc97c31d1..befc6019ef6 100644 --- a/flink-connector-tidb-cdc/src/main/java/com/ververica/cdc/connectors/tidb/table/RowDataTiKVEventDeserializationSchemaBase.java +++ b/flink-connector-tidb-cdc/src/main/java/com/ververica/cdc/connectors/tidb/table/RowDataTiKVEventDeserializationSchemaBase.java @@ -527,10 +527,6 @@ public Object convert( } else { int offset = columnInfo.getOffset(); org.tikv.common.types.DataType type = columnInfo.getType(); - if (type.isUnsigned()) { - ((Object[]) object)[offset] = - dealUnsignedColumnValue(type, ((Object[]) object)[offset]); - } Object convertedField = convertField( fieldConverters[i], @@ -554,6 +550,9 @@ private static Object convertField( if (fieldValue == null) { return null; } else { + if (dataType.isUnsigned()) { + fieldValue = dealUnsignedColumnValue(dataType, fieldValue); + } return fieldConverter.convert(fieldValue, tableInfo, dataType); } }