diff options
Diffstat (limited to 'innobase/row/row0uins.c')
-rw-r--r-- | innobase/row/row0uins.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/innobase/row/row0uins.c b/innobase/row/row0uins.c index 68115895dbb..c9330318ac0 100644 --- a/innobase/row/row0uins.c +++ b/innobase/row/row0uins.c @@ -250,9 +250,12 @@ row_undo_ins_parse_undo_rec( ut_ad(type == TRX_UNDO_INSERT_REC); node->rec_type = type; - /* NOTE that the table has to be explicitly released later */ node->table = dict_table_get_on_id(table_id, node->trx); + if (node->table == NULL) { + return; + } + clust_index = dict_table_get_first_index(node->table); ptr = trx_undo_rec_get_row_ref(ptr, clust_index, &(node->ref), @@ -280,9 +283,14 @@ row_undo_ins( row_undo_ins_parse_undo_rec(node, thr); - found = row_undo_search_clust_to_pcur(node, thr); + if (node->table == NULL) { + found = FALSE; + } else { + found = row_undo_search_clust_to_pcur(node, thr); + } if (!found) { + trx_undo_rec_release(node->trx, node->undo_no); return(DB_SUCCESS); } |