From: Sergey Glukhov Date: March 24 2011 11:47am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3620) Bug#11764994 List-Archive: http://lists.mysql.com/commits/133763 X-Bug: 11764994 Message-Id: <201103241134.p2OBYK6S011291@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4679300739893574668==" --===============4679300739893574668== 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 3620 Sergey Glukhov 2011-03-24 Bug#11764994 57900: CREATE TABLE .. SELECT ASSERTS SCALE >= 0 && PRECISION > 0 && SCALE <= PR Assert fails due to overflow which happens in Item_func_int_val::fix_num_length_and_dec() as geometry functions have max_length value equal to max_field_size(4294967295U). The fix is to skip max_length calculation for some boundary cases. @ mysql-test/r/func_math.result test case @ mysql-test/t/func_math.test test case @ sql/item_func.cc skip max_length calculation if argument max_length is near max_field_size. 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 2010-12-24 11:05:04 +0000 +++ b/mysql-test/r/func_math.result 2011-03-24 11:47:30 +0000 @@ -511,4 +511,11 @@ t1 CREATE TABLE `t1` ( `C` varchar(23) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; +# +# Bug#11764994 57900: CREATE TABLE .. SELECT ASSERTS SCALE >= 0 && PRECISION > 0 && SCALE <= PR +# +CREATE TABLE t1 SELECT CEIL(LINESTRINGFROMWKB(1) DIV NULL); +DROP TABLE t1; +CREATE TABLE t1 SELECT FLOOR(LINESTRINGFROMWKB(1) DIV NULL); +DROP TABLE t1; End of 5.1 tests === modified file 'mysql-test/t/func_math.test' --- a/mysql-test/t/func_math.test 2010-12-24 11:05:04 +0000 +++ b/mysql-test/t/func_math.test 2011-03-24 11:47:30 +0000 @@ -324,4 +324,13 @@ CREATE TABLE t1 SELECT CAST((CASE(('')) SHOW CREATE TABLE t1; DROP TABLE t1; +--echo # +--echo # Bug#11764994 57900: CREATE TABLE .. SELECT ASSERTS SCALE >= 0 && PRECISION > 0 && SCALE <= PR +--echo # + +CREATE TABLE t1 SELECT CEIL(LINESTRINGFROMWKB(1) DIV NULL); +DROP TABLE t1; +CREATE TABLE t1 SELECT FLOOR(LINESTRINGFROMWKB(1) DIV NULL); +DROP TABLE t1; + --echo End of 5.1 tests === modified file 'sql/item_func.cc' --- a/sql/item_func.cc 2011-03-03 12:04:04 +0000 +++ b/sql/item_func.cc 2011-03-24 11:47:30 +0000 @@ -1803,9 +1803,10 @@ void Item_func_integer::fix_length_and_d void Item_func_int_val::fix_num_length_and_dec() { - max_length= args[0]->max_length - (args[0]->decimals ? - args[0]->decimals + 1 : - 0) + 2; + ulonglong tmp_max_length= (ulonglong ) args[0]->max_length - + (args[0]->decimals ? args[0]->decimals + 1 : 0) + 2; + max_length= tmp_max_length > (ulonglong) max_field_size ? + max_field_size : (uint32) tmp_max_length; uint tmp= float_length(decimals); set_if_smaller(max_length,tmp); decimals= 0; --===============4679300739893574668== 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\ # 6mrpxahwrmb2rm3x # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: 91e775525f9fc09ee74ccd8d5a31d928518c2d9a # timestamp: 2011-03-24 14:47:33 +0300 # base_revision_id: sergey.glukhov@stripped\ # kz59ituzrsn1mk9k # # Begin bundle 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 --===============4679300739893574668==--