List:Commits« Previous MessageNext Message »
From:marko.makela Date:May 12 2010 10:46am
Subject:bzr push into mysql-5.1-innodb branch (marko.makela:3461 to 3463) Bug#53591
View as plain text  
 3463 Marko Mäkelä	2010-05-12
      Document the Bug #53591 fix in the ChangeLog.

    modified:
      storage/innodb_plugin/ChangeLog
 3462 Marko Mäkelä	2010-05-12
      ha_innobase::add_index(): Reset trx->error_state in error handling.
      (Bug #53591)

    added:
      mysql-test/suite/innodb_plugin/r/innodb_bug53591.result
      mysql-test/suite/innodb_plugin/t/innodb_bug53591.test
    modified:
      storage/innodb_plugin/handler/handler0alter.cc
 3461 Marko Mäkelä	2010-05-12
      Document recent fixes in ChangeLog.

    modified:
      storage/innodb_plugin/ChangeLog
=== added file 'mysql-test/suite/innodb_plugin/r/innodb_bug53591.result'
--- a/mysql-test/suite/innodb_plugin/r/innodb_bug53591.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/innodb_plugin/r/innodb_bug53591.result	revid:marko.makela@stripped03-vfwkgy2fgjqtohiv
@@ -0,0 +1,16 @@
+SET GLOBAL innodb_file_format='Barracuda';
+SET GLOBAL innodb_file_per_table=on;
+set old_alter_table=0;
+CREATE TABLE bug53591(a text charset utf8 not null)
+ENGINE=InnoDB KEY_BLOCK_SIZE=1;
+ALTER TABLE bug53591 ADD PRIMARY KEY(a(220));
+ERROR HY000: Too big row
+SHOW WARNINGS;
+Level	Code	Message
+Error	139	Too big row
+Error	1118	Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
+Error	1030	Got error 139 from storage engine
+DROP TABLE bug53591;
+SET GLOBAL innodb_file_format=Antelope;
+SET GLOBAL innodb_file_format_check=Antelope;
+SET GLOBAL innodb_file_per_table=0;

=== added file 'mysql-test/suite/innodb_plugin/t/innodb_bug53591.test'
--- a/mysql-test/suite/innodb_plugin/t/innodb_bug53591.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/innodb_plugin/t/innodb_bug53591.test	revid:marko.makela@stripped603-vfwkgy2fgjqtohiv
@@ -0,0 +1,22 @@
+-- source include/have_innodb_plugin.inc
+
+let $file_format=`select @@innodb_file_format`;
+let $file_format_check=`select @@innodb_file_format_check`;
+let $file_per_table=`select @@innodb_file_per_table`;
+
+SET GLOBAL innodb_file_format='Barracuda';
+SET GLOBAL innodb_file_per_table=on;
+
+set old_alter_table=0;
+
+CREATE TABLE bug53591(a text charset utf8 not null)
+ENGINE=InnoDB KEY_BLOCK_SIZE=1;
+-- error 139
+ALTER TABLE bug53591 ADD PRIMARY KEY(a(220));
+SHOW WARNINGS;
+
+DROP TABLE bug53591;
+
+EVAL SET GLOBAL innodb_file_format=$file_format;
+EVAL SET GLOBAL innodb_file_format_check=$file_format_check;
+EVAL SET GLOBAL innodb_file_per_table=$file_per_table;

=== modified file 'storage/innodb_plugin/ChangeLog'
--- a/storage/innodb_plugin/ChangeLog	revid:marko.makela@stripped16ugpukfakwvh
+++ b/storage/innodb_plugin/ChangeLog	revid:marko.makela@stripped
@@ -1,5 +1,11 @@
 2010-05-12	The InnoDB Team
 
+	* handler/handler0alter.cc:
+	Fix Bug#53591 crash with fast alter table and text/blob prefix
+	primary key
+
+2010-05-12	The InnoDB Team
+
 	* row/row0merge.c:
 	Fix Bug#53471 row_merge_drop_temp_indexes() refers freed memory, SEGVs
 

=== modified file 'storage/innodb_plugin/handler/handler0alter.cc'
--- a/storage/innodb_plugin/handler/handler0alter.cc	revid:marko.makela@strippedgpukfakwvh
+++ b/storage/innodb_plugin/handler/handler0alter.cc	revid:marko.makela@strippedy2fgjqtohiv
@@ -894,6 +894,8 @@ error:
 		prebuilt->trx->error_info = NULL;
 		/* fall through */
 	default:
+		trx->error_state = DB_SUCCESS;
+
 		if (new_primary) {
 			if (indexed_table != innodb_table) {
 				row_merge_drop_table(trx, indexed_table);

Attachment: [text/bzr-bundle] bzr/marko.makela@oracle.com-20100512104603-vfwkgy2fgjqtohiv.bundle
Thread
bzr push into mysql-5.1-innodb branch (marko.makela:3461 to 3463) Bug#53591marko.makela12 May