Class MySqlUnsignedIntegerConverter


  • public class MySqlUnsignedIntegerConverter
    extends Object
    A converter API for MySQL Unsigned Integer types. It intends to convert any integer type value from binlog into the correct representation of unsigned numeric MySQL binlog stores unsigned numeric into this format: (insertion value - Maximum data type boundary - 1), therefore to calculate the correct unsigned numeric representation we will inverse the original calculation by applying this calculation: (insertion value + Maximum data type boundary + 1). Please see DBZ-228 for more info
    Author:
    Omar Al-Safi
    • Field Detail

      • TINYINT_MAX_VALUE

        private static final short TINYINT_MAX_VALUE
        Maximum values for Unsigned Integer Types. Needed in order to calculate actual value of an Unsigned Integer Types from binlog value. Reference to {@link https://dev.mysql.com/doc/refman/5.7/en/integer-types.html}
        See Also:
        Constant Field Values
      • BIGINT_MAX_VALUE

        private static final BigDecimal BIGINT_MAX_VALUE
      • BIGINT_CORRECTION

        private static final BigDecimal BIGINT_CORRECTION
    • Constructor Detail

      • MySqlUnsignedIntegerConverter

        private MySqlUnsignedIntegerConverter()
        Private constructor
    • Method Detail

      • convertUnsignedTinyint

        public static short convertUnsignedTinyint​(short originalNumber)
        Convert original value insertion of type 'TINYINT' into the correct TINYINT UNSIGNED representation Note: Unsigned TINYINT (8-bit) is represented in 'Short' 16-bit data type. Reference: https://kafka.apache.org/0102/javadoc/org/apache/kafka/connect/data/Schema.Type.html
        Parameters:
        originalNumber - Short the original insertion value
        Returns:
        Short the correct representation of the original insertion value
      • convertUnsignedSmallint

        public static int convertUnsignedSmallint​(int originalNumber)
        Convert original value insertion of type 'SMALLINT' into the correct SMALLINT UNSIGNED representation Note: Unsigned SMALLINT (16-bit) is represented in 'Integer' 32-bit data type. Reference: https://kafka.apache.org/0102/javadoc/org/apache/kafka/connect/data/Schema.Type.html
        Parameters:
        originalNumber - Integer the original insertion value
        Returns:
        Integer the correct representation of the original insertion value
      • convertUnsignedMediumint

        public static int convertUnsignedMediumint​(int originalNumber)
        Convert original value insertion of type 'MEDIUMINT' into the correct MEDIUMINT UNSIGNED representation Note: Unsigned MEDIUMINT (32-bit) is represented in 'Integer' 32-bit data type since the MAX value of Unsigned MEDIUMINT 16777215 < Max value of Integer 2147483647
        Parameters:
        originalNumber - Integer the original insertion value
        Returns:
        Integer the correct representation of the original insertion value
      • convertUnsignedInteger

        public static long convertUnsignedInteger​(long originalNumber)
        Convert original value insertion of type 'INT' into the correct INT UNSIGNED representation Note: Unsigned INT (32-bit) is represented in 'Long' 64-bit data type. Reference: https://kafka.apache.org/0102/javadoc/org/apache/kafka/connect/data/Schema.Type.html
        Parameters:
        originalNumber - Long the original insertion value
        Returns:
        Long the correct representation of the original insertion value
      • convertUnsignedBigint

        public static BigDecimal convertUnsignedBigint​(BigDecimal originalNumber)
        Convert original value insertion of type 'BIGINT' into the correct BIGINT UNSIGNED representation Note: Unsigned BIGINT (16-bit) is represented in 'BigDecimal' data type. Reference: https://kafka.apache.org/0102/javadoc/org/apache/kafka/connect/data/Schema.Type.html
        Parameters:
        originalNumber - BigDecimal the original insertion value
        Returns:
        BigDecimal the correct representation of the original insertion value