List:Commits« Previous MessageNext Message »
From:Øystein Grøvlen Date:December 10 2009 12:03pm
Subject:Re: bzr commit into mysql-5.1-bugteam branch (epotemkin:3252) Bug#49489
View as plain text  
Hi,

Approved.

One question. I see that store() does one thing that setup() does not 
do.  It sets value_cached.  Should setup() do so, too?

--
Øystein


Evgeny Potemkin wrote:
> #At file:///work/bzrroot/49489-bug-5.1-bugteam/ based on
> revid:luis.soares@stripped
> 
>  3252 Evgeny Potemkin	2009-12-09
>       Bug#49489: Uninitialized cache led to a wrong result.
>       
>       Arg_comparator uses Item_cache objects to store constants being compared when
>       they're need a type conversion. Because this cache wasn't initialized properly
>       Arg_comparator might produce wrong comparison result.
>       
>       The Arg_comparator::cache_converted_constant function now initializes cache
>       prior to usage.
>      @ mysql-test/r/select.result
>         Added a test case for he bug#49489.
>      @ mysql-test/t/select.test
>         Added a test case for he bug#49489.
>      @ sql/item_cmpfunc.cc
>         Bug#49489: Uninitialized cache led to a wrong result.
>         The Arg_comparator::cache_converted_constant function now initializes cache
>         prior to usage.
> 
>     modified:
>       mysql-test/r/select.result
>       mysql-test/t/select.test
>       sql/item_cmpfunc.cc
> === modified file 'mysql-test/r/select.result'
> --- a/mysql-test/r/select.result	2009-11-13 11:22:39 +0000
> +++ b/mysql-test/r/select.result	2009-12-09 15:43:45 +0000
> @@ -4609,4 +4609,14 @@ HAVING v <= 't' 
>  ORDER BY pk;
>  v
>  DROP TABLE t1;
> +#
> +# Bug#49489 Uninitialized cache led to a wrong result.
> +#
> +CREATE TABLE t1(c1 DOUBLE(5,4));
> +INSERT INTO t1 VALUES (9.1234);
> +SELECT * FROM t1 WHERE c1 < 9.12345;
> +c1
> +9.1234
> +DROP TABLE t1;
> +# End of test for bug#49489.
>  End of 5.1 tests
> 
> === modified file 'mysql-test/t/select.test'
> --- a/mysql-test/t/select.test	2009-11-13 11:22:39 +0000
> +++ b/mysql-test/t/select.test	2009-12-09 15:43:45 +0000
> @@ -3964,4 +3964,13 @@ ORDER BY pk;
>  
>  DROP TABLE t1;
>  
> +--echo #
> +--echo # Bug#49489 Uninitialized cache led to a wrong result.
> +--echo #
> +CREATE TABLE t1(c1 DOUBLE(5,4));
> +INSERT INTO t1 VALUES (9.1234);
> +SELECT * FROM t1 WHERE c1 < 9.12345;
> +DROP TABLE t1;
> +--echo # End of test for bug#49489.
> +
>  --echo End of 5.1 tests
> 
> === modified file 'sql/item_cmpfunc.cc'
> --- a/sql/item_cmpfunc.cc	2009-12-02 13:49:21 +0000
> +++ b/sql/item_cmpfunc.cc	2009-12-09 15:43:45 +0000
> @@ -1023,7 +1023,7 @@ Item** Arg_comparator::cache_converted_c
>        (*value)->const_item() && type != (*value)->result_type())
>    {
>      Item_cache *cache= Item_cache::get_cache(*value, type);
> -    cache->store(*value);
> +    cache->setup(*value);
>      *cache_item= cache;
>      return cache_item;
>    }
> 
> 
> 
> ------------------------------------------------------------------------
> 
> 
Thread
bzr commit into mysql-5.1-bugteam branch (epotemkin:3252) Bug#49489Evgeny Potemkin9 Dec
  • Re: bzr commit into mysql-5.1-bugteam branch (epotemkin:3252) Bug#49489Øystein Grøvlen10 Dec
    • Re: bzr commit into mysql-5.1-bugteam branch (epotemkin:3252) Bug#49489Evgeny Potemkin10 Dec