#At file:///usr/local/devel/bzrroot/server/mysql-5.5-innodb/ based on revid:vasil.dimov@stripped
3300 Vasil Dimov 2011-02-01
Replay a lost change (fix for Bug#56947 InnoDB leaks memory... in 5.5)
This change was originally done in
marko.makela@stripped
but was later lost during the merge process.
modified:
storage/innobase/row/row0mysql.c
=== modified file 'storage/innobase/row/row0mysql.c'
--- a/storage/innobase/row/row0mysql.c revid:vasil.dimov@stripped
+++ b/storage/innobase/row/row0mysql.c revid:vasil.dimov@stripped
@@ -1939,15 +1939,13 @@ err_exit:
err = trx->error_state;
- if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
+ switch (err) {
+ case DB_SUCCESS:
+ break;
+ case DB_OUT_OF_FILE_SPACE:
trx->error_state = DB_SUCCESS;
trx_general_rollback_for_mysql(trx, NULL);
- /* TO DO: free table? The code below will dereference
- table->name, though. */
- }
- switch (err) {
- case DB_OUT_OF_FILE_SPACE:
ut_print_timestamp(stderr);
fputs(" InnoDB: Warning: cannot create table ",
stderr);
@@ -1962,9 +1960,13 @@ err_exit:
break;
case DB_DUPLICATE_KEY:
+ default:
/* We may also get err == DB_ERROR if the .ibd file for the
table already exists */
+ trx->error_state = DB_SUCCESS;
+ trx_general_rollback_for_mysql(trx, NULL);
+ dict_mem_table_free(table);
break;
}
Attachment: [text/bzr-bundle] bzr/vasil.dimov@oracle.com-20110201115510-o090wltwt6y40d96.bundle
| Thread |
|---|
| • bzr commit into mysql-5.5-innodb branch (vasil.dimov:3300) Bug#56947 | vasil.dimov | 1 Feb |