29 #include "row0undo.ic"
136 ut_ad(trx && parent && heap);
173 ulint offsets_[REC_OFFS_NORMAL_SIZE];
175 rec_offs_init(offsets_);
179 clust_index = dict_table_get_first_index(node->
table);
184 rec = btr_pcur_get_rec(&(node->
pcur));
186 offsets = rec_get_offsets(rec, clust_index, offsets,
187 ULINT_UNDEFINED, &heap);
220 NULL, NULL, ext, node->
heap);
221 if (node->
rec_type == TRX_UNDO_UPD_EXIST_REC) {
237 if (UNIV_LIKELY_NULL(heap)) {
248 static __attribute__((nonnull, warn_unused_result))
258 ibool locked_data_dict;
270 if (!node->undo_rec) {
278 node->roll_ptr = roll_ptr;
296 if (locked_data_dict) {
298 row_mysql_freeze_data_dictionary(trx);
311 if (locked_data_dict) {
321 thr->run_node = node;
350 err = row_undo(node, thr);
354 if (err != DB_SUCCESS) {
357 fprintf(stderr,
"InnoDB: Fatal error (%s) in rollback.\n",
360 if (err == DB_OUT_OF_FILE_SPACE) {
362 "InnoDB: Out of tablespace.\n"
363 "InnoDB: Consider increasing"
364 " your tablespace.\n");