3910 Marko Mäkelä 2012-04-23
WL#5526: Fix the error handling of failed clustered index creation.
ha_innobase::commit_inplace_alter_table(): After dropping the
created table after rename failure, commit (and do not roll back)
the data dictionary transaction. Otherwise, the entry for the tablename#1
would remain in SYS_TABLES, causing a failure of
mtr --repeat 2 innodb.innodb-index-online.
modified:
storage/innobase/handler/handler0alter.cc
3909 Matthias.Leich 2012-04-23
WL5545 Implement simple in-place ALTER TABLE operations
Improve the formatting of the test case.
modified:
mysql-test/suite/innodb/r/innodb-index-online.result
mysql-test/suite/innodb/t/innodb-index-online.test
=== modified file 'storage/innobase/handler/handler0alter.cc'
--- a/storage/innobase/handler/handler0alter.cc revid:matthias.leich@strippedm-20120423150720-7sa9rfycnki28fub
+++ b/storage/innobase/handler/handler0alter.cc revid:marko.makela@stripped120423183818-bi302hbk90h1oknh
@@ -2864,6 +2864,7 @@ ha_innobase::commit_inplace_alter_table(
dict_table_close(ctx->indexed_table, TRUE, FALSE);
row_merge_drop_table(trx, ctx->indexed_table);
ctx->indexed_table = NULL;
+ goto trx_commit;
}
} else if (ctx) {
dberr_t error;
@@ -2957,6 +2958,7 @@ processed_field:
}
if (err == 0) {
+trx_commit:
trx_commit_for_mysql(trx);
} else {
trx_rollback_for_mysql(trx);
No bundle (reason: useless for push emails).| Thread |
|---|
| • bzr push into mysql-trunk-wl5545 branch (marko.makela:3909 to 3910) WL#5526 | marko.makela | 24 Apr |