• unknown's avatar
    Bug#36023: Incorrect handling of zero length caused an assertion to fail. · 89b866e7
    unknown authored
    When a zero length is provided to the my_decimal_length_to_precision
    function along with unsigned_flag set to false it returns a negative value.
    For queries that employs temporary tables may cause failed assertion or
    excessive memory consumption while temporary table creation.
    
    Now the my_decimal_length_to_precision and the my_decimal_precision_to_length
    functions take unsigned_flag into account only if the length/precision
    argument is non-zero.
    
    
    mysql-test/t/type_decimal.test:
      Added a test case for the bug#36023: Incorrect handling of zero length caused
       an assertion to fail.
    mysql-test/r/type_decimal.result:
      Added a test case for the bug#36023: Incorrect handling of zero length caused
       an assertion to fail.
    sql/my_decimal.h:
      Bug#36023: Incorrect handling of zero length caused an assertion to fail.
      Now the my_decimal_length_to_precision and the my_decimal_precision_to_length
      functions take unsigned_flag into account only if the length/precision
      argument is non-zero.
    89b866e7
my_decimal.h 10.4 KB