• Alexey Kopytov's avatar
    Bug #8433: Overflow must be an error · 2acfdc50
    Alexey Kopytov authored
     
    All numeric operators and functions on integer, floating point 
    and DECIMAL values now throw an 'out of range' error rather 
    than returning an incorrect value or NULL,  when the result is 
    out of supported range for the corresponding data type. 
     
    Some test cases in the test suite had to be updated 
    accordingly either because the test case itself relied on a 
    value returned in case of a numeric overflow, or because a 
    numeric overflow was the root cause of the corresponding bugs. 
    The latter tests are no longer relevant, since the expressions 
    used to trigger the corresponding bugs are not valid anymore. 
    However, such test cases have been adjusted and kept "for the 
    record". 
    
    mysql-test/r/func_math.result:
      Added test cases for bug #8433. 
      Updated results of the test case for bug #31236.
    mysql-test/r/func_misc.result:
      Streamlined test cases.
    mysql-test/r/func_test.result:
      Streamlined test cases.
    mysql-test/r/select.result:
      Streamlined test cases.
    mysql-test/r/sp.result:
      Streamlined test cases.
    mysql-test/r/strict.result:
      Streamlined test cases.
    mysql-test/r/type_newdecimal.result:
      Streamlined test cases.
    mysql-test/suite/sys_vars/r/sql_slave_skip_counter_basic.result:
      Streamlined test cases.
    mysql-test/suite/sys_vars/t/sql_slave_skip_counter_basic.test:
      Streamlined test cases.
    mysql-test/t/func_math.test:
      Added test cases for bug #8433. 
      Updated results of the test case for bug #31236.
    mysql-test/t/func_misc.test:
      Streamlined test cases.
    mysql-test/t/func_test.test:
      Streamlined test cases.
    mysql-test/t/select.test:
      Streamlined test cases.
    mysql-test/t/sp.test:
      Streamlined test cases.
    mysql-test/t/strict.test:
      Streamlined test cases.
    mysql-test/t/type_newdecimal.test:
      Streamlined test cases.
    sql/item_create.cc:
      Changed Item_func_cot() to be defined as a standalone Item
      rather than a combination of "1 / TAN(x)".
    sql/item_func.cc:
      Throw an 'out of range' error rather than returning an  
      incorrect value or NULL,  when the result of a numeric 
      operator or a function is out of supported range for  
      the corresponding data type.
    sql/item_func.h:
      Added validation helpers as inline methods of Item_func.
    sql/share/errmsg-utf8.txt:
      New ER_DATA_OUT_OF_RANGE error.
    2acfdc50
item_create.cc 116 KB