List:Commits« Previous MessageNext Message »
From:Sergey Glukhov Date:March 28 2011 8:53am
Subject:bzr commit into mysql-5.5 branch (sergey.glukhov:3405)
View as plain text  
#At file:///home/gluh/MySQL/mysql-5.5/ based on revid:sergey.glukhov@stripped

 3405 Sergey Glukhov	2011-03-28 [merge]
      5.1 -> 5.5 merge
     @ mysql-test/r/func_math.result
        5.1 -> 5.5 merge
     @ mysql-test/r/variables.result
        5.1 -> 5.5 merge
     @ mysql-test/t/func_math.test
        5.1 -> 5.5 merge
     @ mysql-test/t/variables.test
        5.1 -> 5.5 merge
     @ sql/item_func.cc
        5.1 -> 5.5 merge

    modified:
      mysql-test/r/func_math.result
      mysql-test/r/variables.result
      mysql-test/t/func_math.test
      mysql-test/t/variables.test
      sql/item_func.cc
=== 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: revision is a merge (you can force generation of a bundle with env var BZR_FORCE_BUNDLE=1)).
Thread
bzr commit into mysql-5.5 branch (sergey.glukhov:3405) Sergey Glukhov28 Mar