[ 
https://issues.apache.org/jira/browse/NIFI-14448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sascha Huk updated NIFI-14448:
------------------------------
    Description: 
The processor CaptureChangeMySQL changes the value of larger sql-unsigned 
integer values - for example in the following way: UNSIGNED TINYINT 179 gets 
thrown on -77. 

For more context:
 * see the [current Implementation notes of the Shyiko Binlog 
Connector|https://github.com/shyiko/mysql-binlog-connector-java/tree/0.21.0?tab=readme-ov-file#implementation-notes]:
 _data of numeric types (tinyint, etc) always returned signed(!) regardless of 
whether column definition includes "unsigned" keyword or not._
 * There are no unsigned integer types in Java

Therefore, your org.apache.nifi.cdc.event.ColumnDefinition has to memorize 
isSigned from java.sql.ResultSetMetaData und use this information for the 
correct interpretation of Shyiko's Java integer types, at least during 
serialization in your JSON writers.

I will offer a MergeRequest, while preserving the author's design and coding 
style as unchanged as possible: https://github.com/apache/nifi/pull/9857

  was:
The processor CaptureChangeMySQL changes the value of larger sql-unsigned 
integer values - for example in the following way: UNSIGNED TINYINT 179 gets 
thrown on -77. 

For more context:
 * see the [current Implementation notes of the Shyiko Binlog 
Connector|https://github.com/shyiko/mysql-binlog-connector-java/tree/0.21.0?tab=readme-ov-file#implementation-notes]:
 _data of numeric types (tinyint, etc) always returned signed(!) regardless of 
whether column definition includes "unsigned" keyword or not._
 * There are no unsigned integer types in Java

Therefore, your org.apache.nifi.cdc.event.ColumnDefinition has to memorize 
isSigned from java.sql.ResultSetMetaData und use this information for the 
correct interpretation of Shyiko's Java integer types, at least during 
serialization in your JSON writers.

I will offer a MergeRequest, while preserving the author's design and coding 
style as unchanged as possible.


> nifi-cdc: Fix integer serialization to respect SQL UNSIGNED type semantics
> --------------------------------------------------------------------------
>
>                 Key: NIFI-14448
>                 URL: https://issues.apache.org/jira/browse/NIFI-14448
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>    Affects Versions: 2.3.0
>            Reporter: Sascha Huk
>            Priority: Critical
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> The processor CaptureChangeMySQL changes the value of larger sql-unsigned 
> integer values - for example in the following way: UNSIGNED TINYINT 179 gets 
> thrown on -77. 
> For more context:
>  * see the [current Implementation notes of the Shyiko Binlog 
> Connector|https://github.com/shyiko/mysql-binlog-connector-java/tree/0.21.0?tab=readme-ov-file#implementation-notes]:
>  _data of numeric types (tinyint, etc) always returned signed(!) regardless 
> of whether column definition includes "unsigned" keyword or not._
>  * There are no unsigned integer types in Java
> Therefore, your org.apache.nifi.cdc.event.ColumnDefinition has to memorize 
> isSigned from java.sql.ResultSetMetaData und use this information for the 
> correct interpretation of Shyiko's Java integer types, at least during 
> serialization in your JSON writers.
> I will offer a MergeRequest, while preserving the author's design and coding 
> style as unchanged as possible: https://github.com/apache/nifi/pull/9857



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to