[jira] [Commented] (NIFI-5515) [CaptureChangeMysql] Cannot get real value of primitive type when column type is unsigned.

2023-01-05 Thread Matt Burgess (Jira)


[ 
https://issues.apache.org/jira/browse/NIFI-5515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17655140#comment-17655140
 ] 

Matt Burgess commented on NIFI-5515:


Turns out this will cause problems as NiFi Record types are all signed (so is 
Avro which we currently use for the schema). No solution would really be 
complete and I don't think we want to "half-support" unsigned values across 
NiFi. I looked at Debezium as well and they don't appear to support unsigned 
types either (except TINYINT(1) UNSIGNED which can be converted to a boolean).

> [CaptureChangeMysql] Cannot get real value of primitive type when column type 
> is unsigned.
> --
>
> Key: NIFI-5515
> URL: https://issues.apache.org/jira/browse/NIFI-5515
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Extensions
>Affects Versions: 1.6.0
>Reporter: ashwin konale
>Priority: Minor
>
> *Processor: CaptureChangeMysql*
> When mysql column type is of unsigned primitive type, CaptureChangeMysql is 
> not able to read the data properly when the value overflows. I investigated a 
> bit and came across this 
> ([https://github.com/shyiko/mysql-binlog-connector-java/issues/104|https://github.com/shyiko/mysql-binlog-connector-java/issues/104]).
>  The library which is internally being used in CaptureChangeMysql Processor 
> ([https://github.com/shyiko/mysql-binlog-connector-java|https://github.com/shyiko/mysql-binlog-connector-java])
>  does not handle this case and its upto consumer to handle it. More 
> description can be found in the link.
> *Issue summary Eg.* 
> Column type : unsigned tinyint
> Actual value : 128
> Value from CaptureChangeMysql: -128 (Because its still 8bits storage and 
> mostsignificant bit is identified as sign from java.)
> *Possible solution:*
> Column types are read and stored Distributed Map Cache Client so we should be 
> able to do these conversions.
> Nifi version : 1.6.0
> Mysql version : 5.7.22-log
> Binlog type. : Row-based logging



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


[jira] [Commented] (NIFI-5515) [CaptureChangeMysql] Cannot get real value of primitive type when column type is unsigned.

2023-01-03 Thread Matt Burgess (Jira)


[ 
https://issues.apache.org/jira/browse/NIFI-5515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17654083#comment-17654083
 ] 

Matt Burgess commented on NIFI-5515:


This information would have to be stored in the cache which would break 
compatibility. I recommend we ensure this capability works correctly in the 
CaptureChangeMySQLRecord processor under NIFI-4491.

> [CaptureChangeMysql] Cannot get real value of primitive type when column type 
> is unsigned.
> --
>
> Key: NIFI-5515
> URL: https://issues.apache.org/jira/browse/NIFI-5515
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Extensions
>Affects Versions: 1.6.0
>Reporter: ashwin konale
>Priority: Minor
>
> *Processor: CaptureChangeMysql*
> When mysql column type is of unsigned primitive type, CaptureChangeMysql is 
> not able to read the data properly when the value overflows. I investigated a 
> bit and came across this 
> ([https://github.com/shyiko/mysql-binlog-connector-java/issues/104|https://github.com/shyiko/mysql-binlog-connector-java/issues/104]).
>  The library which is internally being used in CaptureChangeMysql Processor 
> ([https://github.com/shyiko/mysql-binlog-connector-java|https://github.com/shyiko/mysql-binlog-connector-java])
>  does not handle this case and its upto consumer to handle it. More 
> description can be found in the link.
> *Issue summary Eg.* 
> Column type : unsigned tinyint
> Actual value : 128
> Value from CaptureChangeMysql: -128 (Because its still 8bits storage and 
> mostsignificant bit is identified as sign from java.)
> *Possible solution:*
> Column types are read and stored Distributed Map Cache Client so we should be 
> able to do these conversions.
> Nifi version : 1.6.0
> Mysql version : 5.7.22-log
> Binlog type. : Row-based logging



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