From: Sergey Glukhov Date: March 24 2011 12:38pm Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3621) Bug#11766424 List-Archive: http://lists.mysql.com/commits/133766 X-Bug: 11766424 Message-Id: <201103241225.p2OCPVIs009981@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5351927542515170048==" --===============5351927542515170048== 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 3621 Sergey Glukhov 2011-03-24 Bug#11766424 59527: DECIMAL_BIN_SIZE: ASSERTION `SCALE >= 0 && PRECISION > 0 && SCALE <= PRE Assertion happens due to missing initialization of unsigned_flag for Item_func_set_user_var object. It leads to incorrect calculation of decimal field size. The fix is to add initialization of unsigned_flag. @ mysql-test/r/variables.result test case @ mysql-test/t/variables.test test case @ sql/item_func.cc add initialization of unsigned_flag. modified: mysql-test/r/variables.result mysql-test/t/variables.test sql/item_func.cc === modified file 'mysql-test/r/variables.result' --- a/mysql-test/r/variables.result 2011-03-15 11:36:12 +0000 +++ b/mysql-test/r/variables.result 2011-03-24 12:38:39 +0000 @@ -1543,6 +1543,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/variables.test' --- a/mysql-test/t/variables.test 2011-03-15 11:36:12 +0000 +++ b/mysql-test/t/variables.test 2011-03-24 12:38:39 +0000 @@ -1298,6 +1298,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-24 11:47:30 +0000 +++ b/sql/item_func.cc 2011-03-24 12:38:39 +0000 @@ -3841,6 +3841,7 @@ Item_func_set_user_var::fix_length_and_d maybe_null=args[0]->maybe_null; max_length=args[0]->max_length; decimals=args[0]->decimals; + unsigned_flag= args[0]->unsigned_flag; collation.set(args[0]->collation.collation, DERIVATION_IMPLICIT); } --===============5351927542515170048== 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\ # y6q7m1oa3jbloda6 # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: 667773cdce3ecd72a44abb76f1a187a5e97cbcf2 # timestamp: 2011-03-24 15:38:42 +0300 # base_revision_id: sergey.glukhov@stripped\ # 6mrpxahwrmb2rm3x # # Begin bundle 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 --===============5351927542515170048==--