From: Sergey Glukhov Date: April 20 2011 7:39am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3666) Bug#11764671 Bug#11765923 List-Archive: http://lists.mysql.com/commits/135765 X-Bug: 11764671,11765923 Message-Id: <201104200738.p3K7cdVA023716@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0084675834580694463==" --===============0084675834580694463== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/gluh/MySQL/mysql-5.1/ based on revid:serge.kozlov@stripped 3666 Sergey Glukhov 2011-04-20 Bug#11765923 58937: MANY VALGRIND ERRORS AFTER GROUPING BY RESULT OF DECIMAL COLUMN FUNCTION Bug#11764671 57533: UNINITIALISED VALUES IN COPY_AND_CONVERT (SQL_STRING.CC) WITH CERTAIN CHA When ROUND evaluates decimal result it uses Item::decimal value as fraction value for the result. In some cases Item::decimal is greater than real result fraction value and uninitialised memory of result(decimal) buffer can be used in further calculations. Issue is introduced by Bug33143 fix. The fix is to remove erroneous assignment. @ mysql-test/r/func_math.result test case @ mysql-test/t/func_math.test test case @ sql/item_func.cc remove erroneous assignment 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-03-28 08:35:50 +0000 +++ b/mysql-test/r/func_math.result 2011-04-20 07:39:20 +0000 @@ -518,4 +518,26 @@ CREATE TABLE t1 SELECT CEIL(LINESTRINGFR DROP TABLE t1; CREATE TABLE t1 SELECT FLOOR(LINESTRINGFROMWKB(1) DIV NULL); DROP TABLE t1; +# +# Bug#11765923 58937: MANY VALGRIND ERRORS AFTER GROUPING BY RESULT OF DECIMAL COLUMN FUNCTION +# +CREATE TABLE t1(f1 DECIMAL(22,1)); +INSERT INTO t1 VALUES (0),(1); +SELECT ROUND(f1, f1) FROM t1; +ROUND(f1, f1) +0.0 +1.0 +SELECT ROUND(f1, f1) FROM t1 GROUP BY 1; +ROUND(f1, f1) +0.0 +1.0 +DROP TABLE t1; +# +# Bug#11764671 57533: UNINITIALISED VALUES IN COPY_AND_CONVERT (SQL_STRING.CC) WITH CERTAIN CHA +# +SELECT ROUND(LEAST(15, -4939092, 0.2704), STDDEV('a')); +ROUND(LEAST(15, -4939092, 0.2704), STDDEV('a')) +-4939092.0000 +Warnings: +Warning 1292 Truncated incorrect DOUBLE value: 'a' End of 5.1 tests === modified file 'mysql-test/t/func_math.test' --- a/mysql-test/t/func_math.test 2011-03-28 08:35:50 +0000 +++ b/mysql-test/t/func_math.test 2011-04-20 07:39:20 +0000 @@ -333,4 +333,20 @@ DROP TABLE t1; CREATE TABLE t1 SELECT FLOOR(LINESTRINGFROMWKB(1) DIV NULL); DROP TABLE t1; +--echo # +--echo # Bug#11765923 58937: MANY VALGRIND ERRORS AFTER GROUPING BY RESULT OF DECIMAL COLUMN FUNCTION +--echo # + +CREATE TABLE t1(f1 DECIMAL(22,1)); +INSERT INTO t1 VALUES (0),(1); +SELECT ROUND(f1, f1) FROM t1; +SELECT ROUND(f1, f1) FROM t1 GROUP BY 1; +DROP TABLE t1; + +--echo # +--echo # Bug#11764671 57533: UNINITIALISED VALUES IN COPY_AND_CONVERT (SQL_STRING.CC) WITH CERTAIN CHA +--echo # + +SELECT ROUND(LEAST(15, -4939092, 0.2704), STDDEV('a')); + --echo End of 5.1 tests === modified file 'sql/item_func.cc' --- a/sql/item_func.cc 2011-03-28 13:27:44 +0000 +++ b/sql/item_func.cc 2011-04-20 07:39:20 +0000 @@ -2122,10 +2122,7 @@ my_decimal *Item_func_round::decimal_op( if (!(null_value= (args[0]->null_value || args[1]->null_value || my_decimal_round(E_DEC_FATAL_ERROR, value, (int) dec, truncate, decimal_value) > 1))) - { - decimal_value->frac= decimals; return decimal_value; - } return 0; } --===============0084675834580694463== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/sergey.glukhov@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: sergey.glukhov@stripped\ # t0iwi2pxtos5w7x1 # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: feb60c73a34e9f83c5d9530920184deffe11490b # timestamp: 2011-04-20 11:39:26 +0400 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.1/ # base_revision_id: serge.kozlov@stripped\ # 9e9l55vhzs461737 # # Begin bundle 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 --===============0084675834580694463==--