From: Sergey Glukhov Date: March 24 2011 11:18am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3621) Bug#11766424 List-Archive: http://lists.mysql.com/commits/133762 X-Bug: 11766424 Message-Id: <201103241105.p2OB5obE013427@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1148111624555656654==" --===============1148111624555656654== 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 11:18:55 +0000 @@ -1543,6 +1543,15 @@ 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; 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 11:18:55 +0000 @@ -1298,6 +1298,15 @@ 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; + # 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-23 12:21:52 +0000 +++ b/sql/item_func.cc 2011-03-24 11:18:55 +0000 @@ -3848,6 +3848,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); } --===============1148111624555656654== 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\ # 87kyfempbxu4946o # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: d90951fe76a6fc4b4148481f13841cbea956a7b5 # timestamp: 2011-03-24 14:19:01 +0300 # base_revision_id: sergey.glukhov@stripped\ # i7bbu1en4ncfpkf8 # # Begin bundle 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 --===============1148111624555656654==--