From: Sergey Glukhov Date: April 29 2011 7:18am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3675) Bug#12392636 List-Archive: http://lists.mysql.com/commits/136348 X-Bug: 12392636 Message-Id: <201104290718.p3T7I42U000973@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3198821057478773443==" --===============3198821057478773443== 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:sergey.glukhov@stripped 3675 Sergey Glukhov 2011-04-29 Bug#12392636 ASSERTION FAILED: SCALE >= 0 && PRECISION > 0 && SCALE <= PRECISION Assertion fires due to missing NULL value check in Item_func_round::fix_length_and_dec() function. The fix: added NULL value check for second parameter. @ mysql-test/r/func_math.result test case @ mysql-test/t/func_math.test test case @ sql/item_func.cc added NULL value check for second parameter. 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-04-20 07:39:20 +0000 +++ b/mysql-test/r/func_math.result 2011-04-29 07:18:09 +0000 @@ -540,4 +540,10 @@ ROUND(LEAST(15, -4939092, 0.2704), STDDE -4939092.0000 Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'a' +# +# Bug#12392636 ASSERTION FAILED: SCALE >= 0 && PRECISION > 0 && SCALE <= PRECISION +# +SELECT SUM(DISTINCT (TRUNCATE((.1), NULL))); +SUM(DISTINCT (TRUNCATE((.1), NULL))) +NULL End of 5.1 tests === modified file 'mysql-test/t/func_math.test' --- a/mysql-test/t/func_math.test 2011-04-20 07:39:20 +0000 +++ b/mysql-test/t/func_math.test 2011-04-29 07:18:09 +0000 @@ -349,4 +349,10 @@ DROP TABLE t1; SELECT ROUND(LEAST(15, -4939092, 0.2704), STDDEV('a')); +--echo # +--echo # Bug#12392636 ASSERTION FAILED: SCALE >= 0 && PRECISION > 0 && SCALE <= PRECISION +--echo # + +SELECT SUM(DISTINCT (TRUNCATE((.1), NULL))); + --echo End of 5.1 tests === modified file 'sql/item_func.cc' --- a/sql/item_func.cc 2011-04-20 07:39:20 +0000 +++ b/sql/item_func.cc 2011-04-29 07:18:09 +0000 @@ -1973,6 +1973,12 @@ void Item_func_round::fix_length_and_dec } val1= args[1]->val_int(); + if (args[1]->is_null()) + { + null_value= TRUE; + return; + } + val1_unsigned= args[1]->unsigned_flag; if (val1 < 0) decimals_to_set= val1_unsigned ? INT_MAX : 0; --===============3198821057478773443== 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\ # 2s0i8m9edb4yv5hs # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: e6af9b28977bb28f30306250c09c8c9af76101fd # timestamp: 2011-04-29 11:18:17 +0400 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.1/ # base_revision_id: sergey.glukhov@stripped\ # p71p27xg6tx311lc # # Begin bundle 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 --===============3198821057478773443==--