• unknown's avatar
    fixed bug in Item_func_div::val_int() that broke all functions that · 6ca8d50c
    unknown authored
    do val_int() on their arguments before starting the computation. 
    Similar fixes are need for +-* and probably several other but I want
    to make sure Monty is fine with my fix approach before changing a lot
    of code. 
    
    Amazingly,
    this bug is not as critical as you would expect since very few functions do val_int()
    on their arguments ( from_unixtime(), sec_to_time()), and those not
    very frequently perform a computation on their floating point arguments.
    which is probably why no one has yet reported this bug. Another 
    possibility is that the result is usually wrong by no more than 5%,
    which makes it hard to catch it. I found it when trying to compute mile
    splits for 30:47 10K - it told me 5:07, and I knew it was wrong because
    5:00 mile gives you 31:08. However, if I had not run as many 10K races,
    I would have easily believed that 30:47 10K is a 5:07 mile pace and 
    would not have noticed the bug.
    
    
    mysql-test/r/func_time.result:
      another test for sec_to_time that exposes a long outstanding bug
    mysql-test/t/func_time.test:
      another test for sec_to_time that exposes a long outstanding bug
    sql/item_func.cc:
      fixed bug in Item_func_div::val_int()
    6ca8d50c
item_func.cc 46.1 KB