diff --git a/row/row0uins.c b/row/row0uins.c index 41f00143041..c4157f51601 100644 --- a/row/row0uins.c +++ b/row/row0uins.c @@ -228,7 +228,7 @@ static void row_undo_ins_parse_undo_rec( /*========================*/ - undo_node_t* node) /* in: row undo node */ + undo_node_t* node) /* in/out: row undo node */ { dict_index_t* clust_index; byte* ptr; @@ -255,8 +255,15 @@ row_undo_ins_parse_undo_rec( } else { clust_index = dict_table_get_first_index(node->table); - ptr = trx_undo_rec_get_row_ref( - ptr, clust_index, &node->ref, node->heap); + if (clust_index != NULL) { + ptr = trx_undo_rec_get_row_ref( + ptr, clust_index, &node->ref, node->heap); + } else { + ut_print_timestamp(stderr); + fprintf(stderr, " InnoDB: table %s has no indexes, " + "ignoring the table\n", node->table->name); + node->table = NULL; + } } }