List:Commits« Previous MessageNext Message »
From:Build Team Date:January 11 2012 5:54pm
Subject:bzr push into mysql-5.1 branch (MYSQL-RE_WW:3663 to 3664)
View as plain text  
 3664 Karen Langford	2012-01-11 [merge]
      Merge from mysql-5.1.61-release

    modified:
      cmd-line-utils/libedit/chartype.h
      cmd-line-utils/libedit/eln.c
      cmd-line-utils/libedit/readline.c
      mysql-test/r/key_cache.result
      mysql-test/r/mysqlcheck.result
      mysql-test/t/key_cache.test
      mysql-test/t/merge.test
      mysql-test/t/mysqlcheck.test
      sql/sql_table.cc
      storage/innodb_plugin/ChangeLog
      storage/myisam/mi_preload.c
      unittest/mysys/bitmap-t.c
 3663 Nirbhay Choubey	2012-01-10
      BUG#11760384 - 52792: mysqldump in XML mode does not dump
                           routines.
      
      mysqldump in xml mode did not dump routines, events or
      triggers.
      
      This patch fixes this issue by fixing the if conditions
      that disallowed the dump of above mentioned objects in
      xml mode, and added the required code to enable dump
      in xml format.
     @ client/mysqldump.c
        BUG#11760384 - 52792: mysqldump in XML mode does not dump
                              routines.
        
        Fixed some if conditions to allow execution of dump methods
        for xml and further added the relevant code at places to produce
        the dump in xml format.
     @ mysql-test/r/mysqldump.result
        Added a test case for Bug#11760384.
     @ mysql-test/t/mysqldump.test
        Added a test case for Bug#11760384.

    modified:
      client/mysqldump.c
      mysql-test/r/mysqldump.result
      mysql-test/t/mysqldump.test
=== modified file 'cmd-line-utils/libedit/chartype.h'
--- a/cmd-line-utils/libedit/chartype.h	2011-10-13 19:33:25 +0000
+++ b/cmd-line-utils/libedit/chartype.h	2012-01-11 17:40:29 +0000
@@ -45,11 +45,11 @@
  * seems to actually advertise this properly, despite Unicode 3.1 having
  * been around since 2001... */
 
-/* XXXMYSQL : Added FreeBSD to bypass this check.
-  TODO : Verify if FreeBSD stores ISO 10646 in wchar_t. */
+/* XXXMYSQL : Added FreeBSD & AIX to bypass this check.
+  TODO : Verify if FreeBSD & AIX stores ISO 10646 in wchar_t. */
 #if !defined(__NetBSD__) && !defined(__sun) \
   && !(defined(__APPLE__) && defined(__MACH__)) \
-  && !defined(__FreeBSD__)
+  && !defined(__FreeBSD__) && !defined(_AIX)
 #ifndef __STDC_ISO_10646__
 /* In many places it is assumed that the first 127 code points are ASCII
  * compatible, so ensure wchar_t indeed does ISO 10646 and not some other

=== modified file 'cmd-line-utils/libedit/eln.c'
--- a/cmd-line-utils/libedit/eln.c	2011-10-13 19:33:25 +0000
+++ b/cmd-line-utils/libedit/eln.c	2012-01-11 17:40:29 +0000
@@ -200,7 +200,7 @@ el_set(EditLine *el, int op, ...)
 		    ret = -1;
 		    goto out;
 		}
-		// XXX: The two strdup's leak
+                /* XXX: The two strdups leak. */
 		ret = map_addfunc(el, Strdup(wargv[0]), Strdup(wargv[1]),
 		    func);
 		ct_free_argv(wargv);

=== modified file 'cmd-line-utils/libedit/readline.c'
--- a/cmd-line-utils/libedit/readline.c	2011-10-13 19:33:25 +0000
+++ b/cmd-line-utils/libedit/readline.c	2012-01-11 17:40:29 +0000
@@ -1978,7 +1978,7 @@ rl_callback_read_char()
 		} else
 			wbuf = NULL;
 		(*(void (*)(const char *))rl_linefunc)(wbuf);
-		//el_set(e, EL_UNBUFFERED, 1);
+                /*el_set(e, EL_UNBUFFERED, 1);*/
 	}
 }
 

=== modified file 'mysql-test/r/key_cache.result'
--- a/mysql-test/r/key_cache.result	2010-11-25 03:11:05 +0000
+++ b/mysql-test/r/key_cache.result	2011-12-14 13:41:40 +0000
@@ -365,3 +365,19 @@ Variable_name	Value
 key_cache_block_size	1536
 SET GLOBAL key_cache_block_size= @bug28478_key_cache_block_size;
 DROP TABLE t1;
+#
+# Bug#12361113: crash when load index into cache
+#
+# Note that this creates an empty disabled key cache!
+SET GLOBAL key_cache_none.key_cache_block_size = 1024;
+CREATE TABLE t1 (a INT, b INTEGER NOT NULL, KEY (b) ) ENGINE = MYISAM;
+INSERT INTO t1 VALUES (1, 1);
+CACHE INDEX t1 in key_cache_none;
+ERROR HY000: Unknown key cache 'key_cache_none'
+# The bug crashed the server at LOAD INDEX below. Now it will succeed 
+# since the default cache is used due to CACHE INDEX failed for
+# key_cache_none.
+LOAD INDEX INTO CACHE t1;
+Table	Op	Msg_type	Msg_text
+test.t1	preload_keys	status	OK
+DROP TABLE t1;

=== modified file 'mysql-test/r/mysqlcheck.result'
--- a/mysql-test/r/mysqlcheck.result	2009-07-14 17:08:38 +0000
+++ b/mysql-test/r/mysqlcheck.result	2011-12-15 15:59:18 +0000
@@ -147,6 +147,7 @@ DROP TABLE `@`;
 CREATE TABLE `��` (a INT);
 SET NAMES DEFAULT;
 mysqlcheck --default-character-set="latin1" --databases test
+call mtr.add_suppression("Can't find file: '..test.@003f.frm'");
 test.?
 Error    : Table doesn't exist
 status   : Operation failed

=== modified file 'mysql-test/t/key_cache.test'
--- a/mysql-test/t/key_cache.test	2010-11-25 03:11:05 +0000
+++ b/mysql-test/t/key_cache.test	2011-12-14 13:41:40 +0000
@@ -248,3 +248,19 @@ SET GLOBAL key_cache_block_size= @bug284
 DROP TABLE t1;
 
 # End of 4.1 tests
+
+--echo #
+--echo # Bug#12361113: crash when load index into cache
+--echo #
+
+--echo # Note that this creates an empty disabled key cache!
+SET GLOBAL key_cache_none.key_cache_block_size = 1024;
+CREATE TABLE t1 (a INT, b INTEGER NOT NULL, KEY (b) ) ENGINE = MYISAM;
+INSERT INTO t1 VALUES (1, 1);
+--error ER_UNKNOWN_KEY_CACHE
+CACHE INDEX t1 in key_cache_none;
+--echo # The bug crashed the server at LOAD INDEX below. Now it will succeed 
+--echo # since the default cache is used due to CACHE INDEX failed for
+--echo # key_cache_none.
+LOAD INDEX INTO CACHE t1;
+DROP TABLE t1;

=== modified file 'mysql-test/t/merge.test'
--- a/mysql-test/t/merge.test	2011-08-18 06:38:51 +0000
+++ b/mysql-test/t/merge.test	2011-12-15 15:59:18 +0000
@@ -1817,9 +1817,13 @@ CREATE TABLE t1(a INT);
 --echo # Test reattach merge failure
 LOCK TABLES m1 READ;
 --echo # Replace 't1' with 't3' table using file operations.
-remove_file $MYSQLD_DATADIR/test/t1.frm;
-remove_file $MYSQLD_DATADIR/test/t1.MYI;
-remove_file $MYSQLD_DATADIR/test/t1.MYD;
+# move + remove is a work around for windows.
+move_file $MYSQLD_DATADIR/test/t1.frm $MYSQLD_DATADIR/test/oldt1.frm;
+move_file $MYSQLD_DATADIR/test/t1.MYI $MYSQLD_DATADIR/test/oldt1.MYI;
+move_file $MYSQLD_DATADIR/test/t1.MYD $MYSQLD_DATADIR/test/oldt1.MYD;
+remove_file $MYSQLD_DATADIR/test/oldt1.frm;
+remove_file $MYSQLD_DATADIR/test/oldt1.MYI;
+remove_file $MYSQLD_DATADIR/test/oldt1.MYD;
 copy_file $MYSQLD_DATADIR/test/t3.frm $MYSQLD_DATADIR/test/t1.frm;
 copy_file $MYSQLD_DATADIR/test/t3.MYI $MYSQLD_DATADIR/test/t1.MYI;
 copy_file $MYSQLD_DATADIR/test/t3.MYD $MYSQLD_DATADIR/test/t1.MYD;

=== modified file 'mysql-test/t/mysqlcheck.test'
--- a/mysql-test/t/mysqlcheck.test	2009-07-14 17:08:38 +0000
+++ b/mysql-test/t/mysqlcheck.test	2011-12-15 15:59:18 +0000
@@ -138,6 +138,7 @@ CREATE TABLE `��` (a INT);
 SET NAMES DEFAULT;
 --echo mysqlcheck --default-character-set="latin1" --databases test
 # Error returned depends on platform, replace it with "Table doesn't exist"
+call mtr.add_suppression("Can't find file: '..test.@003f.frm'");
 --replace_result "Can't find file: './test/@003f.frm' (errno: 22)" "Table doesn't exist" "Table 'test.?' doesn't exist" "Table doesn't exist"
 --exec $MYSQL_CHECK --default-character-set="latin1" --databases test
 --echo mysqlcheck --default-character-set="utf8" --databases test

=== modified file 'sql/sql_table.cc'
--- a/sql/sql_table.cc	2011-11-01 06:50:54 +0000
+++ b/sql/sql_table.cc	2011-12-14 13:41:40 +0000
@@ -5126,6 +5126,11 @@ bool mysql_assign_to_keycache(THD* thd,
     DBUG_RETURN(TRUE);
   }
   pthread_mutex_unlock(&LOCK_global_system_variables);
+  if (!key_cache->key_cache_inited)
+  {
+    my_error(ER_UNKNOWN_KEY_CACHE, MYF(0), key_cache_name->str);
+    DBUG_RETURN(TRUE);
+  }
   check_opt.key_cache= key_cache;
   DBUG_RETURN(mysql_admin_table(thd, tables, &check_opt,
 				"assign_to_keycache", TL_READ_NO_INSERT, 0, 0,

=== modified file 'storage/innodb_plugin/ChangeLog'
--- a/storage/innodb_plugin/ChangeLog	2012-01-10 05:18:58 +0000
+++ b/storage/innodb_plugin/ChangeLog	2012-01-11 17:51:42 +0000
@@ -34,7 +34,12 @@
 2011-10-27	The InnoDB Team
 
 	* row/row0mysql.c:
-	Fix Bug#12884631 62146: TABLES ARE LOST FOR DDL
+	Fix Bug #12884631 62146: TABLES ARE LOST FOR DDL
+
+2011-10-25	The InnoDB Team
+
+	* handler/ha_innodb.cc, row/row0ins.c:
+	Fix Bug#13002783 PARTIALLY UNINITIALIZED CASCADE UPDATE VECTOR
 
 2011-10-20	The InnoDB Team
 

=== modified file 'storage/myisam/mi_preload.c'
--- a/storage/myisam/mi_preload.c	2011-06-30 15:37:13 +0000
+++ b/storage/myisam/mi_preload.c	2011-12-14 13:41:40 +0000
@@ -56,6 +56,9 @@ int mi_preload(MI_INFO *info, ulonglong
   if (!keys || !mi_is_any_key_active(key_map) || key_file_length == pos)
     DBUG_RETURN(0);
 
+  /* Preload into a non initialized key cache should never happen. */
+  DBUG_ASSERT(share->key_cache->key_cache_inited);
+
   block_length= keyinfo[0].block_length;
 
   if (ignore_leaves)

=== modified file 'unittest/mysys/bitmap-t.c'
--- a/unittest/mysys/bitmap-t.c	2011-07-03 15:47:37 +0000
+++ b/unittest/mysys/bitmap-t.c	2012-01-11 17:40:29 +0000
@@ -429,7 +429,7 @@ my_bool test_intersect(MY_BITMAP *map, u
 {
   uint bitsize2 = 1 + get_rand_bit(MAX_TESTED_BITMAP_SIZE - 1);
   MY_BITMAP map2;
-  uint32 map2buf[bitsize2];
+  uint32 map2buf[MAX_TESTED_BITMAP_SIZE];
   uint i, test_bit1, test_bit2, test_bit3;
   if (bitmap_init(&map2, map2buf, bitsize2, FALSE))
   {

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-5.1 branch (MYSQL-RE_WW:3663 to 3664) Build Team12 Jan