From: Sergey Glukhov Date: April 13 2011 6:55am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3657) Bug#11764671 Bug#11765923 List-Archive: http://lists.mysql.com/commits/135308 X-Bug: 11764671,11765923 Message-Id: <201104130654.p3D6snOu003328@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7535134214632782961==" --===============7535134214632782961== 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:sven.sandberg@stripped 3657 Sergey Glukhov 2011-04-13 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-13 06:55:29 +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-13 06:55:29 +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-13 06:55:29 +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; } --===============7535134214632782961== 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\ # alw38vkf5838voyn # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: 9691bf20d2327718fb9df13452a15d5135733d86 # timestamp: 2011-04-13 10:55:32 +0400 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.1/ # base_revision_id: sven.sandberg@stripped\ # ryehs8aj4fthsq71 # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWdZSMGgABB7fgEAwWOf//3/n /6C////wYAiOT6vrtr200dKuoD7feqqeX3c97Pdz3gSSI0mk8TTJMGEUbQnqPU0B6I2poPRAaAyp qbVHsSj2I1PVPSPUbUGQADTEaaADTQEpU9TQDQAGgAA0GmgGgAAAJImk0amjJM1Q9TR6g8oB6jQD Q00BoABFIQBGmk0PVM0p4ptGU9R+qaGjT1BkxPSZDQJJCaaaCZMjTUaMJPRpIaaANA0BoHqKKPh2 49JyGfO1xNicceJws/uO+ejq2UjnUa4jSuU/WZErRQuz23ZqsfllKHhjdho2URu0OI7WpV1NEnxp HVu6KretgsPWcqnvW5fFYJhmGZmW2F9A69NO22Q0T5yWvc5GNxlJHLoEzonO/lS+J71rDeti7Ey6 1UV715gjURwW2dXHObdaerFe4V67DlMEikUxiWJbJiZ/o/ZWQgxJcJwb2+GNNNbTTeVPpGjyUrXK rrUfxOgKPxPyNwOIClKJp8BJu526YUyG7I23BhTS09oomEvOdQwyZm3i8Ad9q/VOO46L1nFQWvmP E/m89rB71y9w8b6VtKQgb30s2YwSNw8zrH5AGFr6nJspMT9x7Rt543zb+R/PJVLnCsyOlZ09cDM2 zfky+tZo1oC4SvRimR0lhhi07KJ1KvIDYYVSTMYS3bjSbCwLbWucXdUh0hvaAEhlf0joSqNh5LbG IbmEcqCeF5I7SRQF5BVIkrCqB7Xl1ESt16VqabFpiJhdDIkO4u+vF1w4gGhl3zoAR7uR0m3eA23Z u5vG5GdEbqKxO2YEbge5qdki9LUooMmh+isuDQZ6nWrBgN3LdLooRO8mMZL+yW7FcS8vw7Xtm0UE zccsnb5DFGhGBnxCkJtTMjlJjcYFrMv2SzY6izHjctKT2SwFFW2WFYjG+Vm694qy0Y2mm1TI9Fcn 0q0ntwUkLFYD9g+DK5fLiTWyRQocCXDJZmB6CIiHQAUWTBgTLtrzmCQ6x1xAOAxjJAoF2DSFhJBc 8d21EtZLQ0U56LwLlTgDF/jkKQxoWjuqj/vFVcrF3EXwT1btMR7bsS2gRcj0hSbBEzYyXkpjKKyL nrJ4iCq0U08bncYjnYq3ti/SwvI0FItakIZRpcv71L1mM5YPbVnxdF8LOZUyfNMdlC7eib6pK9Qn 6KMjuoL65mqciJYrhMMbNiooU5HeorWt8HTrchwS1FpXpMyqgM4ZytXkm0hgwFWboFoiNDzMnosV 5hFcXLzgoqFARazKwRemZpA0BCzOWKIQHqnsZUFlj/dO7MoiFz8FqVkrnL2E4Psv6DVKzBriQOED 0ZEJ50gJQE5aaXCtdTT8lyZMoPKHH07KoIIed4l7fg8Xc9zCnufUGLD+qeD8mE/qkvejA4hmZMdA fyqJsQxtfmXqUCmhlVMpkx8RhgTW0T1sVFGh7APE12JMfFCptc2ZqckubX3tgZsOI4MhwbmGEqZt r4sNjrKFja/NqaNVqcE9jtGY5MJrfmwGiXNTNmOjNkwJWyGTC0Zusrc3YFbJkQw7YVtLSGHicWst f5b34heXtWcEEBWlrewJUw4tY7TNybnRsea5OR2Dm2BRk2mx1DW4lTZ78r0ow2sxKmExZAWMOTyJ N0fi7m96k3tm2ikDQIKyblIncGhlYBRfN+M/JAfGUWbHnbqiBS7lMaEBMTriIY08x5kfURksp669 a9c+KDynYtTFA7F3vEQTd3D5rm7iU77T5euzVF9EY2evuvKpI6k2ZIszZdqPAr70xkXRoONIiaGx PvDm15UaidPPeIvcyAwICuPOoRqzweiN06+xWTGbNTAlqHFLTuUyKC22aIU6EiSU6jxpVZ2ms2/Z TPM5B2e9Xay7etFhs4tzajQuiIbO9CLTyD7CvRVWqLiExPGQJtLiPaqVZ1scmkKkWHU8xYA7Ewm0 HFxlXnjyfVGDdWP2XPwJbk+XO2lXeL6UtGQy2p72ZOTIwkWmGWx2ZW79KS2HNxHnqBwhmuQRYTku CSht3oPI6EhMLsOhnob1I4CNo/NRPM4vRgsQz2/Bei8+iZZI05nEeoQWtGfrTh3PwlJlZbqXkwfM 80oQhX7RZ7Td9Tjhhv7+VGtl2AT9sbvvl2VjtVy9D0tbzjBKM2RLcbNeghocgwJIVoQMlcKyU1D1 d+MZFYmivZrE7urNk+FoWVUQsP0Y8hgKyxwI5bSTeBf1LPCWHgfQQ0kAemTKq6YiXi6S3YGRAMvU woi+GhkE5NGjj6BeqYlk+YAyIhMA8poJFLHr6TaFh0YWduDdYF9PS87R6DuMbrpR7cCoIqYk/S/i zDN0ALbogTKKMSCuBZLWpTzIIGQyyVFv1cYofLaqmSx7Ll3IDg1wHhIcyK/+QFonKPN9zGPHI1pK g6CRrBuc98MAUC64OGOlVcuq916DvcqLyX6mtzN8T6+2bNA4yB8+6/TbO9CDhEMRPzzDVgCasGlQ fSJxqOeZlCk1Iuc1RQBaZQkSa1hoUYUbHPrgRLWZi+/prYeIGT8Gssc0sZK8uE64YncZcedZ2ud3 d3yVfinsVK8NR1cCoFqcgcGxZx5xPExZzAyxiPvgYCPVVFQ6iYZ7qbiaIZNcaBiUjrBO4KKE8dev bFq5I8JWRx7VLiFjUGMDIltnmVo5YPYO3dPWlNXcauK1CFdeU9tNp3VebU01MC/RVXB1NDPB43g5 8Lx3AnfQTlfSbHieD2OLznK3eTY5vW7Fk48s7ScSFjoZycGbxiak6Hvc9gbMLv/F3JFOFCQ1lIwa AA== --===============7535134214632782961==--