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#53591 | marko.makela | 12 May |