List:Commits« Previous MessageNext Message »
From:Sergey Glukhov Date:April 12 2011 10:13am
Subject:bzr commit into mysql-5.5 branch (sergey.glukhov:3435)
View as plain text  
#At file:///home/gluh/MySQL/mysql-5.5/ based on revid:sven.sandberg@stripped

 3435 Sergey Glukhov	2011-04-12 [merge]
      5.1 -> 5.5 merge
     @ mysql-test/r/func_group.result
        5.1 -> 5.5 merge
     @ mysql-test/r/func_in.result
        5.1 -> 5.5 merge
     @ mysql-test/t/func_group.test
        5.1 -> 5.5 merge
     @ mysql-test/t/func_in.test
        5.1 -> 5.5 merge
     @ sql/field.cc
        5.1 -> 5.5 merge
     @ sql/item_cmpfunc.cc
        5.1 -> 5.5 merge
     @ sql/item_sum.cc
        5.1 -> 5.5 merge

    modified:
      mysql-test/r/func_group.result
      mysql-test/r/func_in.result
      mysql-test/t/func_group.test
      mysql-test/t/func_in.test
      sql/field.cc
      sql/item_cmpfunc.cc
      sql/item_sum.cc
=== modified file 'mysql-test/r/func_group.result'
--- a/mysql-test/r/func_group.result	2011-04-02 19:41:10 +0000
+++ b/mysql-test/r/func_group.result	2011-04-12 10:13:15 +0000
@@ -1746,6 +1746,17 @@ MAX(LENGTH(a))	LENGTH(MAX(a))	MIN(a)	MAX
 20	20	18446668621106209655	18446668621106209655	18446668621106209655	18446668621106209655
 DROP TABLE t1;
 #
+# Bug #11766270  59343: YEAR(4): INCORRECT RESULT AND VALGRIND WARNINGS WITH MIN/MAX, UNION
+#
+CREATE TABLE t1(f1 YEAR(4));
+INSERT INTO t1 VALUES (0000),(2001);
+(SELECT MAX(f1) FROM t1) UNION (SELECT MAX(f1) FROM t1);
+Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
+def				MAX(f1)	MAX(f1)	13	4	4	Y	32864	0	63
+MAX(f1)
+2001
+DROP TABLE t1;
+#
 End of 5.1 tests
 #
 # Bug#52123 Assertion failed: aggregator == aggr->Aggrtype(),

=== modified file 'mysql-test/r/func_in.result'
--- a/mysql-test/r/func_in.result	2010-06-22 18:53:08 +0000
+++ b/mysql-test/r/func_in.result	2011-04-12 09:51:36 +0000
@@ -770,4 +770,10 @@ CASE a WHEN a THEN a END
 NULL
 DROP TABLE t1;
 #
+# Bug #11766212  59270: NOT IN (YEAR( ... ), ... ) PRODUCES MANY VALGRIND WARNINGS
+#
+SELECT 1 IN (YEAR(FROM_UNIXTIME(NULL)) ,1);
+1 IN (YEAR(FROM_UNIXTIME(NULL)) ,1)
+1
+#
 End of 5.1 tests

=== modified file 'mysql-test/t/func_group.test'
--- a/mysql-test/t/func_group.test	2011-04-02 19:41:10 +0000
+++ b/mysql-test/t/func_group.test	2011-04-12 10:13:15 +0000
@@ -1128,6 +1128,18 @@ SELECT MAX(LENGTH(a)), LENGTH(MAX(a)), M
 DROP TABLE t1;
 
 --echo #
+--echo # Bug #11766270  59343: YEAR(4): INCORRECT RESULT AND VALGRIND WARNINGS WITH MIN/MAX, UNION
+--echo #
+
+CREATE TABLE t1(f1 YEAR(4));
+INSERT INTO t1 VALUES (0000),(2001);
+--enable_metadata
+(SELECT MAX(f1) FROM t1) UNION (SELECT MAX(f1) FROM t1);
+--disable_metadata
+DROP TABLE t1;
+
+
+--echo #
 --echo End of 5.1 tests
 
 ###

=== modified file 'mysql-test/t/func_in.test'
--- a/mysql-test/t/func_in.test	2010-06-22 18:53:08 +0000
+++ b/mysql-test/t/func_in.test	2011-04-12 09:51:36 +0000
@@ -555,5 +555,11 @@ SELECT CASE a WHEN a THEN a END FROM t1 
 DROP TABLE t1;
 
 --echo #
+--echo # Bug #11766212  59270: NOT IN (YEAR( ... ), ... ) PRODUCES MANY VALGRIND WARNINGS
+--echo #
+
+SELECT 1 IN (YEAR(FROM_UNIXTIME(NULL)) ,1);
+
+--echo #
 
 --echo End of 5.1 tests

=== modified file 'sql/field.cc'
--- a/sql/field.cc	2011-02-08 15:47:33 +0000
+++ b/sql/field.cc	2011-04-12 10:13:15 +0000
@@ -5382,6 +5382,7 @@ double Field_year::val_real(void)
 longlong Field_year::val_int(void)
 {
   ASSERT_COLUMN_MARKED_FOR_READ;
+  DBUG_ASSERT(field_length == 2 || field_length == 4);
   int tmp= (int) ptr[0];
   if (field_length != 4)
     tmp%=100;					// Return last 2 char
@@ -5394,6 +5395,7 @@ longlong Field_year::val_int(void)
 String *Field_year::val_str(String *val_buffer,
 			    String *val_ptr __attribute__((unused)))
 {
+  DBUG_ASSERT(field_length < 5);
   val_buffer->alloc(5);
   val_buffer->length(field_length);
   char *to=(char*) val_buffer->ptr();

=== modified file 'sql/item_cmpfunc.cc'
--- a/sql/item_cmpfunc.cc	2011-03-16 14:11:20 +0000
+++ b/sql/item_cmpfunc.cc	2011-04-12 10:13:15 +0000
@@ -4069,13 +4069,11 @@ void Item_func_in::fix_length_and_dec()
       uint j=0;
       for (uint i=1 ; i < arg_count ; i++)
       {
-	if (!args[i]->null_value)			// Skip NULL values
-        {
-          array->set(j,args[i]);
-	  j++;
-        }
-	else
-	  have_null= 1;
+        array->set(j,args[i]);
+        if (!args[i]->null_value)                      // Skip NULL values
+          j++;
+        else
+          have_null= 1;
       }
       if ((array->used_count= j))
 	array->sort();

=== modified file 'sql/item_sum.cc'
--- a/sql/item_sum.cc	2011-03-16 14:11:20 +0000
+++ b/sql/item_sum.cc	2011-04-12 10:13:15 +0000
@@ -1145,17 +1145,13 @@ Item_sum_hybrid::fix_fields(THD *thd, It
 
   switch (hybrid_type= item->result_type()) {
   case INT_RESULT:
-    max_length= 20;
-    break;
   case DECIMAL_RESULT:
+  case STRING_RESULT:
     max_length= item->max_length;
     break;
   case REAL_RESULT:
     max_length= float_length(decimals);
     break;
-  case STRING_RESULT:
-    max_length= item->max_length;
-    break;
   case ROW_RESULT:
   default:
     DBUG_ASSERT(0);

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:3435) Sergey Glukhov12 Apr