Commit dbffc480 authored by unknown's avatar unknown

InnoDB: cleanup of B-tree cursor operations


innobase/btr/btr0cur.c:
  Remove unused parameter of btr_cur_latch_leaves()
  Simplify logic and add debug assertion in btr_cur_search_to_nth_level()
parent 7c9dba22
...@@ -120,7 +120,6 @@ static ...@@ -120,7 +120,6 @@ static
void void
btr_cur_latch_leaves( btr_cur_latch_leaves(
/*=================*/ /*=================*/
dict_tree_t* tree __attribute__((unused)), /* in: index tree */
page_t* page, /* in: leaf page where the search page_t* page, /* in: leaf page where the search
converged */ converged */
ulint space, /* in: space id */ ulint space, /* in: space id */
...@@ -133,7 +132,7 @@ btr_cur_latch_leaves( ...@@ -133,7 +132,7 @@ btr_cur_latch_leaves(
ulint right_page_no; ulint right_page_no;
page_t* get_page; page_t* get_page;
ut_ad(tree && page && mtr); ut_ad(page && mtr);
if (latch_mode == BTR_SEARCH_LEAF) { if (latch_mode == BTR_SEARCH_LEAF) {
...@@ -365,17 +364,19 @@ btr_cur_search_to_nth_level( ...@@ -365,17 +364,19 @@ btr_cur_search_to_nth_level(
B-tree. These let us end up in the right B-tree leaf. In that leaf B-tree. These let us end up in the right B-tree leaf. In that leaf
we use the original search mode. */ we use the original search mode. */
if (mode == PAGE_CUR_GE) { switch (mode) {
case PAGE_CUR_GE:
page_mode = PAGE_CUR_L; page_mode = PAGE_CUR_L;
} else if (mode == PAGE_CUR_G) { break;
case PAGE_CUR_G:
page_mode = PAGE_CUR_LE; page_mode = PAGE_CUR_LE;
} else if (mode == PAGE_CUR_LE) { break;
page_mode = PAGE_CUR_LE; default:
} else if (mode == PAGE_CUR_LE_OR_EXTENDS) { ut_ad(mode == PAGE_CUR_L
page_mode = PAGE_CUR_LE_OR_EXTENDS; || mode == PAGE_CUR_LE
} else { || mode == PAGE_CUR_LE_OR_EXTENDS);
ut_ad(mode == PAGE_CUR_L); page_mode = mode;
page_mode = PAGE_CUR_L; break;
} }
/* Loop and search until we arrive at the desired level */ /* Loop and search until we arrive at the desired level */
...@@ -450,7 +451,7 @@ retry_page_get: ...@@ -450,7 +451,7 @@ retry_page_get:
if (height == 0) { if (height == 0) {
if (rw_latch == RW_NO_LATCH) { if (rw_latch == RW_NO_LATCH) {
btr_cur_latch_leaves(tree, page, space, btr_cur_latch_leaves(page, space,
page_no, latch_mode, cursor, page_no, latch_mode, cursor,
mtr); mtr);
} }
...@@ -477,6 +478,9 @@ retry_page_get: ...@@ -477,6 +478,9 @@ retry_page_get:
/* If this is the desired level, leave the loop */ /* If this is the desired level, leave the loop */
ut_ad(height
== btr_page_get_level(page_cur_get_page(page_cursor), mtr));
if (level == height) { if (level == height) {
if (level > 0) { if (level > 0) {
...@@ -588,7 +592,7 @@ btr_cur_open_at_index_side( ...@@ -588,7 +592,7 @@ btr_cur_open_at_index_side(
} }
if (height == 0) { if (height == 0) {
btr_cur_latch_leaves(tree, page, space, page_no, btr_cur_latch_leaves(page, space, page_no,
latch_mode, cursor, mtr); latch_mode, cursor, mtr);
/* In versions <= 3.23.52 we had forgotten to /* In versions <= 3.23.52 we had forgotten to
...@@ -694,7 +698,7 @@ btr_cur_open_at_rnd_pos( ...@@ -694,7 +698,7 @@ btr_cur_open_at_rnd_pos(
} }
if (height == 0) { if (height == 0) {
btr_cur_latch_leaves(tree, page, space, page_no, btr_cur_latch_leaves(page, space, page_no,
latch_mode, cursor, mtr); latch_mode, cursor, mtr);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment