List:Commits« Previous MessageNext Message »
From:Olav Sandstaa Date:January 14 2011 2:49pm
Subject:Re: bzr commit into mysql-5.5 branch (tor.didriksen:3248) Bug#59498
View as plain text  
Hi Tor,

Patch looks correct and solves the problem. OK to push.

Best regards,
Olav

On 14/01/2011 15:03, Tor Didriksen wrote:
> #At file:///export/home/didrik/repo/5.5/ based on
> revid:guilhem.bichot@stripped
>
>   3248 Tor Didriksen	2011-01-14
>        Bug #59498 div function broken in mysql-trunk
>       @ mysql-test/r/func_math.result
>          New test case.
>       @ mysql-test/t/func_math.test
>          New test case.
>       @ sql/item_func.cc
>          Check for null before converting value to my_decimal.
>
>      modified:
>        mysql-test/r/func_math.result
>        mysql-test/t/func_math.test
>        sql/item_func.cc
> === modified file 'mysql-test/r/func_math.result'
> --- a/mysql-test/r/func_math.result	2011-01-14 09:05:14 +0000
> +++ b/mysql-test/r/func_math.result	2011-01-14 14:03:37 +0000
> @@ -650,3 +650,9 @@ SELECT ((@a:=@b:=1.0) div (@b:=@a:=get_f
>   NULL
>   Warnings:
>   Warning	1366	Incorrect decimal value: '' for column '' at row -1
> +#
> +# Bug #59498 div function broken in mysql-trunk
> +#
> +SELECT 1 div null;
> +1 div null
> +NULL
>
> === modified file 'mysql-test/t/func_math.test'
> --- a/mysql-test/t/func_math.test	2011-01-14 09:05:14 +0000
> +++ b/mysql-test/t/func_math.test	2011-01-14 14:03:37 +0000
> @@ -495,3 +495,8 @@ DROP TABLE t1;
>   --echo #            in do_div_mod with doubly assigned variables
>   --echo #
>   SELECT ((@a:=@b:=1.0) div (@b:=@a:=get_format(datetime, 'usa')));
> +
> +--echo #
> +--echo # Bug #59498 div function broken in mysql-trunk
> +--echo #
> +SELECT 1 div null;
>
> === modified file 'sql/item_func.cc'
> --- a/sql/item_func.cc	2011-01-14 09:05:14 +0000
> +++ b/sql/item_func.cc	2011-01-14 14:03:37 +0000
> @@ -1582,10 +1582,15 @@ longlong Item_func_int_div::val_int()
>         args[1]->result_type() != INT_RESULT)
>     {
>       my_decimal tmp;
> -    my_decimal val0= *args[0]->val_decimal(&tmp);
> -    my_decimal val1= *args[1]->val_decimal(&tmp);
> -    if ((null_value= (args[0]->null_value || args[1]->null_value)))
> +    my_decimal *val0p= args[0]->val_decimal(&tmp);
> +    if ((null_value= args[0]->null_value))
>         return 0;
> +    my_decimal val0= *val0p;
> +
> +    my_decimal *val1p= args[1]->val_decimal(&tmp);
> +    if ((null_value= args[1]->null_value))
> +      return 0;
> +    my_decimal val1= *val1p;
>
>       int err;
>       if ((err= my_decimal_div(E_DEC_FATAL_ERROR&  ~E_DEC_DIV_ZERO,&tmp,
>
>    
>
>
>
>    


Thread
bzr commit into mysql-5.5 branch (tor.didriksen:3248) Bug#59498Tor Didriksen14 Jan
  • Re: bzr commit into mysql-5.5 branch (tor.didriksen:3248) Bug#59498Olav Sandstaa14 Jan