diff options
author | Jimmy Yang <jimmy.yang@oracle.com> | 2010-10-20 19:14:25 -0700 |
---|---|---|
committer | Jimmy Yang <jimmy.yang@oracle.com> | 2010-10-20 19:14:25 -0700 |
commit | 1e09ea9549ce53026f25727a59f33e1eabbbfd31 (patch) | |
tree | 3a99ad53bb9c543d7073f8119e17a6c1e7416255 /storage | |
parent | d0ac4e2c5ade16d6d0833137aa67071b34e66964 (diff) | |
download | mariadb-git-1e09ea9549ce53026f25727a59f33e1eabbbfd31.tar.gz |
Fix bug #57616 Sig 11 in dict_load_table() when failed to load index
or foreign key
Fix approved by Sunny Bains
Diffstat (limited to 'storage')
-rw-r--r-- | storage/innobase/dict/dict0load.c | 4 | ||||
-rw-r--r-- | storage/innodb_plugin/ChangeLog | 6 | ||||
-rw-r--r-- | storage/innodb_plugin/dict/dict0load.c | 4 |
3 files changed, 10 insertions, 4 deletions
diff --git a/storage/innobase/dict/dict0load.c b/storage/innobase/dict/dict0load.c index 625956600c0..c505bfbd6c4 100644 --- a/storage/innobase/dict/dict0load.c +++ b/storage/innobase/dict/dict0load.c @@ -878,13 +878,13 @@ err_exit: if (err != DB_SUCCESS) { dict_table_remove_from_cache(table); table = NULL; + } else { + table->fk_max_recusive_level = 0; } } else if (!srv_force_recovery) { dict_table_remove_from_cache(table); table = NULL; } - - table->fk_max_recusive_level = 0; #if 0 if (err != DB_SUCCESS && table != NULL) { diff --git a/storage/innodb_plugin/ChangeLog b/storage/innodb_plugin/ChangeLog index f0dfe1ff6cc..3e1e4fc7a99 100644 --- a/storage/innodb_plugin/ChangeLog +++ b/storage/innodb_plugin/ChangeLog @@ -1,3 +1,9 @@ +2010-10-20 The InnoDB Team + + * dict/dict0load.c + Fix Bug #57616 Sig 11 in dict_load_table() when failed to load + index or foreign key + 2010-10-11 The InnoDB Team * row/row0sel.c diff --git a/storage/innodb_plugin/dict/dict0load.c b/storage/innodb_plugin/dict/dict0load.c index b046fb32b0b..3dcee46b92c 100644 --- a/storage/innodb_plugin/dict/dict0load.c +++ b/storage/innodb_plugin/dict/dict0load.c @@ -1023,13 +1023,13 @@ err_exit: if (err != DB_SUCCESS) { dict_table_remove_from_cache(table); table = NULL; + } else { + table->fk_max_recusive_level = 0; } } else if (!srv_force_recovery) { dict_table_remove_from_cache(table); table = NULL; } - - table->fk_max_recusive_level = 0; #if 0 if (err != DB_SUCCESS && table != NULL) { |