Hello Igor, Ok to push.
On Tue, Jul 20, 2010 at 10:01:30PM -0700, Igor Babaev wrote: > Sergey, > > Please review this trivial patch for the 5.2 tree. > > Regards, > Igor. > > -------- Original Message -------- > Subject: [Commits] bzr commit into Mariadb 5.2, with Maria 2.0:maria/5.2 > branch (igor:2827) Bug#607177 > Date: Tue, 20 Jul 2010 22:00:00 -0700 (PDT) > From: Igor Babaev <[email protected]> > Reply-To: [email protected] > To: [email protected] > > #At lp:maria/5.2 based on > revid:[email protected] > > 2827 Igor Babaev 2010-07-20 > Fixed bug #607177. > Due to an invalid check for NULL of the second argument of the > Item_func_round items performed in the code of > Item_func_round::real_op > the function ROUND sometimes could return wrong results. > modified: > mysql-test/suite/vcol/r/vcol_misc.result > mysql-test/suite/vcol/t/vcol_misc.test > sql/item_func.cc > > === modified file 'mysql-test/suite/vcol/r/vcol_misc.result' > --- a/mysql-test/suite/vcol/r/vcol_misc.result 2010-07-17 19:58:08 > +0000 > +++ b/mysql-test/suite/vcol/r/vcol_misc.result 2010-07-21 04:59:47 > +0000 > @@ -87,3 +87,23 @@ a v > 2002-02-15 00:00:00 0 > 2000-10-15 00:00:00 1 > DROP TABLE t1, t2; > +CREATE TABLE t1 (p int, a double NOT NULL, v double AS (ROUND(a,p)) > VIRTUAL); > +INSERT INTO t1 VALUES (0,1,0); > +Warnings: > +Warning 1645 The value specified for computed column 'v' in table > 't1' > ignored > +INSERT INTO t1 VALUES (NULL,0,0); > +Warnings: > +Warning 1645 The value specified for computed column 'v' in table > 't1' > ignored > +SELECT a, p, v, ROUND(a,p), ROUND(a,p+NULL) FROM t1; > +a p v ROUND(a,p) ROUND(a,p+NULL) > +1 0 1 1 NULL > +0 NULL NULL NULL NULL > +DROP TABLE t1; > +CREATE TABLE t1 (p int, a double NOT NULL); > +INSERT INTO t1(p,a) VALUES (0,1); > +INSERT INTO t1(p,a) VALUES (NULL,0); > +SELECT a, p, ROUND(a,p), ROUND(a,p+NULL) FROM t1; > +a p ROUND(a,p) ROUND(a,p+NULL) > +1 0 1 NULL > +0 NULL NULL NULL > +DROP TABLE t1; > > === modified file 'mysql-test/suite/vcol/t/vcol_misc.test' > --- a/mysql-test/suite/vcol/t/vcol_misc.test 2010-07-17 19:58:08 +0000 > +++ b/mysql-test/suite/vcol/t/vcol_misc.test 2010-07-21 04:59:47 +0000 > @@ -87,3 +87,19 @@ INSERT INTO t2(a) VALUES ('2000-10-15'); > SELECT * FROM t2; > > DROP TABLE t1, t2; > + > +# > +# Bug#607177: ROUND function in the expression for a virtual function > +# > + > +CREATE TABLE t1 (p int, a double NOT NULL, v double AS (ROUND(a,p)) > VIRTUAL); > +INSERT INTO t1 VALUES (0,1,0); > +INSERT INTO t1 VALUES (NULL,0,0); > +SELECT a, p, v, ROUND(a,p), ROUND(a,p+NULL) FROM t1; > +DROP TABLE t1; > + > +CREATE TABLE t1 (p int, a double NOT NULL); > +INSERT INTO t1(p,a) VALUES (0,1); > +INSERT INTO t1(p,a) VALUES (NULL,0); > +SELECT a, p, ROUND(a,p), ROUND(a,p+NULL) FROM t1; > +DROP TABLE t1; > > === modified file 'sql/item_func.cc' > --- a/sql/item_func.cc 2010-06-01 19:52:20 +0000 > +++ b/sql/item_func.cc 2010-07-21 04:59:47 +0000 > @@ -2040,10 +2040,12 @@ double Item_func_round::real_op() > { > double value= args[0]->val_real(); > > - if (!(null_value= args[0]->null_value || args[1]->null_value)) > - return my_double_round(value, args[1]->val_int(), > args[1]->unsigned_flag, > - truncate); > - > + if (!(null_value= args[0]->null_value)) > + { > + longlong dec= args[1]->val_int(); > + if (!(null_value= args[1]->null_value)) > + return my_double_round(value, dec, args[1]->unsigned_flag, truncate); > + } > return 0.0; > } > > > _______________________________________________ > commits mailing list > [email protected] > https://lists.askmonty.org/cgi-bin/mailman/listinfo/commits -- BR Sergey -- Sergey Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

