diff options
Diffstat (limited to 'storage/innobase')
-rw-r--r-- | storage/innobase/row/row0vers.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/storage/innobase/row/row0vers.cc b/storage/innobase/row/row0vers.cc index 6c7cfdad1e6..7db1b936348 100644 --- a/storage/innobase/row/row0vers.cc +++ b/storage/innobase/row/row0vers.cc @@ -904,6 +904,7 @@ row_vers_old_has_index_entry( ut_ad(mtr_memo_contains_page_flagged(mtr, rec, MTR_MEMO_PAGE_X_FIX | MTR_MEMO_PAGE_S_FIX)); ut_ad(!rw_lock_own(&(purge_sys->latch), RW_LOCK_S)); + ut_ad(also_curr || !vcol_info); clust_index = dict_table_get_first_index(index->table); @@ -970,7 +971,7 @@ row_vers_old_has_index_entry( entry = row_build_index_entry( row, ext, index, heap); if (entry && !dtuple_coll_cmp(ientry, entry)) { - goto safe_to_purge; + goto unsafe_to_purge; } } else { /* Build index entry out of row */ @@ -991,7 +992,7 @@ row_vers_old_has_index_entry( clust_index, clust_offsets, index, ientry, roll_ptr, trx_id, NULL, &vrow, mtr)) { - goto safe_to_purge; + goto unsafe_to_purge; } } clust_offsets = rec_get_offsets(rec, clust_index, NULL, @@ -1024,7 +1025,7 @@ row_vers_old_has_index_entry( a different binary value in a char field, but the collation identifies the old and new value anyway! */ if (entry && !dtuple_coll_cmp(ientry, entry)) { -safe_to_purge: +unsafe_to_purge: mem_heap_free(heap); if (v_heap) { @@ -1065,7 +1066,6 @@ safe_to_purge: if (!prev_version) { /* Versions end here */ -unsafe_to_purge: mem_heap_free(heap); if (v_heap) { @@ -1127,7 +1127,7 @@ unsafe_to_purge: and new value anyway! */ if (entry && !dtuple_coll_cmp(ientry, entry)) { - goto safe_to_purge; + goto unsafe_to_purge; } } |