From: Sergey Glukhov Date: March 28 2011 9:14am Subject: bzr push into mysql-5.5 branch (sergey.glukhov:3406 to 3407) List-Archive: http://lists.mysql.com/commits/134006 Message-Id: <201103280916.p2S9Gf2f029053@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3407 Sergey Glukhov 2011-03-28 [merge] 5.1->5.5 merge 3406 Sergey Glukhov 2011-03-28 [merge] automerge === modified file 'mysql-test/r/func_math.result' --- a/mysql-test/r/func_math.result 2011-03-03 14:25:41 +0000 +++ b/mysql-test/r/func_math.result 2011-03-28 08:52:47 +0000 @@ -514,6 +514,13 @@ 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 # # Bug #8433: Overflow must be an error === modified file 'mysql-test/r/variables.result' --- a/mysql-test/r/variables.result 2011-03-25 12:55:22 +0000 +++ b/mysql-test/r/variables.result 2011-03-28 08:52:47 +0000 @@ -1546,6 +1546,22 @@ Warning 1292 Truncated incorrect key_cac select @@max_long_data_size; @@max_long_data_size 1048576 +# +# Bug#11766424 59527: DECIMAL_BIN_SIZE: ASSERTION `SCALE >= 0 && PRECISION > 0 && SCALE <= PRE +# +CREATE TABLE t1(f1 DECIMAL(1,1) UNSIGNED); +INSERT INTO t1 VALUES (0.2),(0.1); +SELECT 1 FROM t1 GROUP BY @a:= (SELECT ROUND(f1) FROM t1 WHERE @a=f1); +1 +1 +DROP TABLE t1; +CREATE TABLE t1 AS SELECT @a:= CAST(1 AS UNSIGNED) AS a; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(1) unsigned NOT NULL DEFAULT '0' +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; SET @@global.max_binlog_cache_size=DEFAULT; SET @@global.max_join_size=DEFAULT; SET @@global.key_buffer_size=@kbs; === modified file 'mysql-test/t/func_math.test' --- a/mysql-test/t/func_math.test 2011-03-03 14:25:41 +0000 +++ b/mysql-test/t/func_math.test 2011-03-28 08:52:47 +0000 @@ -345,6 +345,15 @@ 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 --echo # === modified file 'mysql-test/t/variables.test' --- a/mysql-test/t/variables.test 2011-03-25 12:55:22 +0000 +++ b/mysql-test/t/variables.test 2011-03-28 08:52:47 +0000 @@ -1286,6 +1286,19 @@ SET @@global.key_cache_block_size=0; # select @@max_long_data_size; +--echo # +--echo # Bug#11766424 59527: DECIMAL_BIN_SIZE: ASSERTION `SCALE >= 0 && PRECISION > 0 && SCALE <= PRE +--echo # + +CREATE TABLE t1(f1 DECIMAL(1,1) UNSIGNED); +INSERT INTO t1 VALUES (0.2),(0.1); +SELECT 1 FROM t1 GROUP BY @a:= (SELECT ROUND(f1) FROM t1 WHERE @a=f1); +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT @a:= CAST(1 AS UNSIGNED) AS a; +SHOW CREATE TABLE t1; +DROP TABLE t1; + # cleanup SET @@global.max_binlog_cache_size=DEFAULT; SET @@global.max_join_size=DEFAULT; === modified file 'sql/item_func.cc' --- a/sql/item_func.cc 2011-03-16 14:11:20 +0000 +++ b/sql/item_func.cc 2011-03-28 08:52:47 +0000 @@ -2088,9 +2088,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) 4294967295U ? + (uint32) 4294967295U : (uint32) tmp_max_length; uint tmp= float_length(decimals); set_if_smaller(max_length,tmp); decimals= 0; @@ -4261,6 +4262,7 @@ Item_func_set_user_var::fix_length_and_d fix_length_and_charset(args[0]->max_char_length(), args[0]->collation.collation); } + unsigned_flag= args[0]->unsigned_flag; } No bundle (reason: useless for push emails).