From: Sergey Glukhov Date: May 4 2011 7:15am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3675) Bug#12392636 List-Archive: http://lists.mysql.com/commits/136614 X-Bug: 12392636 Message-Id: <201105040718.p447IHNl020386@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6952486277709866853==" --===============6952486277709866853== 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-05-04 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-05-04 07:15:38 +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-05-04 07:15:38 +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-05-04 07:15:38 +0000 @@ -1973,6 +1973,9 @@ void Item_func_round::fix_length_and_dec } val1= args[1]->val_int(); + if ((null_value= args[1]->is_null())) + return; + val1_unsigned= args[1]->unsigned_flag; if (val1 < 0) decimals_to_set= val1_unsigned ? INT_MAX : 0; --===============6952486277709866853== 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\ # h5b8fu8vjgdg848f # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: b8cf05424a381d6e42190c283a3a68bb2ff20370 # timestamp: 2011-05-04 11:15:42 +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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 --===============6952486277709866853==--