summaryrefslogtreecommitdiff
path: root/storage/innobase/btr/btr0cur.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-10-02 10:45:55 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-10-02 10:45:55 +0300
commitac0b5a2e7983ea259ebc8947a0a82103e11a653b (patch)
tree9fed75e34a03c00e512679c9a230eaf449b996f1 /storage/innobase/btr/btr0cur.cc
parentb8488e5cf56cece22ae324a652d7ce8042739971 (diff)
parentde4a00d4f7b4a299cf8fba7bb501fbbbe558ae17 (diff)
downloadmariadb-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.cc14
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);