#At file:///home/marko/innobase/dev/mysql/5.5-innodb/ based on revid:vasil.dimov@strippedhdqlgkfch
3091 Marko Mäkelä 2010-05-12
Merge from mysql-5.1-innodb:
------------------------------------------------------------
revno: 3462
revision-id: marko.makela@stripped04212-e2h9n1obxjb8tfg4
parent: marko.makela@oracle.com-20100512060922-oh716ugpukfakwvh
committer: Marko Mäkelä <marko.makela@stripped>
branch nick: mysql-5.1-innodb
timestamp: Wed 2010-05-12 13:42:12 +0300
message:
ha_innobase::add_index(): Reset trx->error_state in error handling.
(Bug #53591)
added:
mysql-test/suite/innodb/r/innodb_bug53591.result
mysql-test/suite/innodb/t/innodb_bug53591.test
modified:
storage/innobase/handler/handler0alter.cc
=== added file 'mysql-test/suite/innodb/r/innodb_bug53591.result'
--- a/mysql-test/suite/innodb/r/innodb_bug53591.result 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/innodb/r/innodb_bug53591.result revid:marko.makela@strippedp1exxix
@@ -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/t/innodb_bug53591.test'
--- a/mysql-test/suite/innodb/t/innodb_bug53591.test 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/innodb/t/innodb_bug53591.test revid:marko.makela@stripped
@@ -0,0 +1,22 @@
+-- source include/have_innodb.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/innobase/handler/handler0alter.cc'
--- a/storage/innobase/handler/handler0alter.cc revid:vasil.dimov@stripped
+++ b/storage/innobase/handler/handler0alter.cc revid:marko.makela@stripped
@@ -896,6 +896,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-20100512111926-jaz947yfip1exxix.bundle
| Thread |
|---|
| • bzr commit into mysql-trunk-innodb branch (marko.makela:3091) | marko.makela | 12 May |