summaryrefslogtreecommitdiff
path: root/innobase/row/row0uins.c
diff options
context:
space:
mode:
Diffstat (limited to 'innobase/row/row0uins.c')
-rw-r--r--innobase/row/row0uins.c12
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);
}