3091 Marko Mäkelä 2010-05-12
Merge from mysql-5.1-innodb:
------------------------------------------------------------
revno: 3462
revision-id: marko.makela@stripped1obxjb8tfg4
parent: marko.makela@stripped512060922-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
3090 Vasil Dimov 2010-05-12
Fix the failing innodb.innodb test.
Support returning 512 and 511 pages for the buffer pool size, this
is undeterministic and probably depends on alignment issues.
The default buffer pool size is 8M (512) pages, which is set in
include/default_mysqld.cnf. So the previous "replace_result 8192 8191"
had no effect.
modified:
mysql-test/suite/innodb/r/innodb.result
mysql-test/suite/innodb/t/innodb.test
=== 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@oracle.com-20100512111926-jaz947yfip1exxix
@@ -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@stripped6-jaz947yfip1exxix
@@ -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@stripped091350-idbzw2ihdqlgkfch
+++ b/storage/innobase/handler/handler0alter.cc revid:marko.makela@stripped26-jaz947yfip1exxix
@@ -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 push into mysql-trunk-innodb branch (marko.makela:3090 to 3091) | marko.makela | 12 May |