MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Mattias Jonsson Date:May 28 2010 1:15pm
Subject:bzr commit into mysql-trunk branch (mattias.jonsson:3035) Bug#49161
View as plain text  
#At file:///Users/mattiasj/mysql-bzr/topush-trunk-merge/ based on revid:li-bing.song@stripped00528032120-x6ivgz7vcuzd5ea2

 3035 Mattias Jonsson	2010-05-28 [merge]
      Manual merge of bug#49161 into mysql-trunk-merge
      
      (Added a real error message instead of ER_UNKNOWN_ERROR)

    modified:
      mysql-test/r/partition_error.result
      mysql-test/t/partition_error.test
      sql/ha_partition.cc
      sql/share/errmsg-utf8.txt
=== modified file 'mysql-test/r/partition_error.result'
--- a/mysql-test/r/partition_error.result	2010-05-25 13:45:01 +0000
+++ b/mysql-test/r/partition_error.result	2010-05-28 13:14:43 +0000
@@ -1,5 +1,21 @@
 drop table if exists t1;
 #
+# Bug#49161: Out of memory; restart server and try again (needed 2 bytes)
+#
+CREATE TABLE t1 (a INT) PARTITION BY HASH (a);
+FLUSH TABLES;
+CHECK TABLE t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	Error	Failed to read from the .par file
+test.t1	check	Error	Incorrect information in file: './test/t1.frm'
+test.t1	check	error	Corrupt
+SELECT * FROM t1;
+ERROR HY000: Failed to read from the .par file
+# Note that it is currently impossible to drop a partitioned table
+# without the .par file
+DROP TABLE t1;
+ERROR 42S02: Unknown table 't1'
+#
 # Bug#49477: Assertion `0' failed in ha_partition.cc:5530
 # with temporary table and partitions
 #

=== modified file 'mysql-test/t/partition_error.test'
--- a/mysql-test/t/partition_error.test	2010-05-25 13:45:01 +0000
+++ b/mysql-test/t/partition_error.test	2010-05-28 13:14:43 +0000
@@ -7,7 +7,26 @@
 --disable_warnings
 drop table if exists t1;
 --enable_warnings
- 
+
+let $MYSQLD_DATADIR= `SELECT @@datadir`;
+
+--echo #
+--echo # Bug#49161: Out of memory; restart server and try again (needed 2 bytes)
+--echo #
+CREATE TABLE t1 (a INT) PARTITION BY HASH (a);
+FLUSH TABLES;
+--remove_file $MYSQLD_DATADIR/test/t1.par
+CHECK TABLE t1;
+--error ER_FAILED_READ_FROM_PAR_FILE
+SELECT * FROM t1;
+--echo # Note that it is currently impossible to drop a partitioned table
+--echo # without the .par file
+--error ER_BAD_TABLE_ERROR
+DROP TABLE t1;
+--remove_file $MYSQLD_DATADIR/test/t1.frm
+--remove_file $MYSQLD_DATADIR/test/t1#P#p0.MYI
+--remove_file $MYSQLD_DATADIR/test/t1#P#p0.MYD
+
 --echo #
 --echo # Bug#49477: Assertion `0' failed in ha_partition.cc:5530
 --echo # with temporary table and partitions
@@ -167,7 +186,6 @@ partitions 3
  partition x2 tablespace ts2,
  partition x3 tablespace ts3);
 
-let $MYSQLD_DATADIR= `select @@datadir`;
 select load_file('$MYSQLD_DATADIR/test/t1.par');
 #
 # Partition by hash, invalid field in function

=== modified file 'sql/ha_partition.cc'
--- a/sql/ha_partition.cc	2010-05-25 13:45:01 +0000
+++ b/sql/ha_partition.cc	2010-05-28 13:14:43 +0000
@@ -361,7 +361,7 @@ bool ha_partition::initialize_partition(
   }
   else if (get_from_handler_file(table_share->normalized_path.str, mem_root))
   {
-    mem_alloc_error(2);
+    my_error(ER_FAILED_READ_FROM_PAR_FILE, MYF(0));
     DBUG_RETURN(1);
   }
   /*

=== modified file 'sql/share/errmsg-utf8.txt'
--- a/sql/share/errmsg-utf8.txt	2010-04-28 12:47:49 +0000
+++ b/sql/share/errmsg-utf8.txt	2010-05-28 13:14:43 +0000
@@ -6336,3 +6336,7 @@ ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SE
 
 ER_BINLOG_UNSAFE_MIXED_STATEMENT
   eng "Statements that read from both transactional (or a temporary table of any engine type) and non-transactional tables and write to any of them are unsafe."
+
+ER_FAILED_READ_FROM_PAR_FILE
+  eng "Failed to read from the .par file"
+  swe "Misslyckades läsa från .par filen"

Attachment: [text/bzr-bundle]
Thread
bzr commit into mysql-trunk branch (mattias.jonsson:3035) Bug#49161Mattias Jonsson28 May