diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-10-02 10:45:55 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2017-10-02 10:45:55 +0300 |
commit | ac0b5a2e7983ea259ebc8947a0a82103e11a653b (patch) | |
tree | 9fed75e34a03c00e512679c9a230eaf449b996f1 /storage/innobase/btr/btr0cur.cc | |
parent | b8488e5cf56cece22ae324a652d7ce8042739971 (diff) | |
parent | de4a00d4f7b4a299cf8fba7bb501fbbbe558ae17 (diff) | |
download | mariadb-git-ac0b5a2e7983ea259ebc8947a0a82103e11a653b.tar.gz |
Merge 10.0 into 10.1
Diffstat (limited to 'storage/innobase/btr/btr0cur.cc')
-rw-r--r-- | storage/innobase/btr/btr0cur.cc | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/storage/innobase/btr/btr0cur.cc b/storage/innobase/btr/btr0cur.cc index 5597a085525..bb010190af7 100644 --- a/storage/innobase/btr/btr0cur.cc +++ b/storage/innobase/btr/btr0cur.cc @@ -3433,7 +3433,6 @@ btr_cur_pessimistic_delete( ulint n_reserved = 0; ibool success; ibool ret = FALSE; - ulint level; mem_heap_t* heap; ulint* offsets; @@ -3484,6 +3483,10 @@ btr_cur_pessimistic_delete( #endif /* UNIV_ZIP_DEBUG */ } + if (flags == 0) { + lock_update_delete(block, rec); + } + if (UNIV_UNLIKELY(page_get_n_recs(page) < 2) && UNIV_UNLIKELY(dict_index_get_page(index) != buf_block_get_page_no(block))) { @@ -3498,13 +3501,7 @@ btr_cur_pessimistic_delete( goto return_after_reservations; } - if (flags == 0) { - lock_update_delete(block, rec); - } - - level = btr_page_get_level(page, mtr); - - if (level > 0 + if (!page_is_leaf(page) && UNIV_UNLIKELY(rec == page_rec_get_next( page_get_infimum_rec(page)))) { @@ -3527,6 +3524,7 @@ btr_cur_pessimistic_delete( on a page, we have to change the father node pointer so that it is equal to the new leftmost node pointer on the page */ + ulint level = btr_page_get_level(page, mtr); btr_node_ptr_delete(index, block, mtr); |