btr0cur.c:

  Fix a major bug in InnoDB query estimator for queries of type SELECT ... WHERE col < x and SELECT ... WHERE col > x; MySQL could pick a table scan though the result set was only a few rows in a big table
parent 493e3911
...@@ -604,12 +604,12 @@ btr_cur_open_at_index_side( ...@@ -604,12 +604,12 @@ btr_cur_open_at_index_side(
page_cur_set_after_last(page, page_cursor); page_cur_set_after_last(page, page_cursor);
} }
if (height == 0) {
if (estimate) { if (estimate) {
btr_cur_add_path_info(cursor, height, root_height); btr_cur_add_path_info(cursor, height,
root_height);
} }
if (height == 0) {
break; break;
} }
...@@ -621,6 +621,10 @@ btr_cur_open_at_index_side( ...@@ -621,6 +621,10 @@ btr_cur_open_at_index_side(
page_cur_move_to_prev(page_cursor); page_cur_move_to_prev(page_cursor);
} }
if (estimate) {
btr_cur_add_path_info(cursor, height, root_height);
}
height--; height--;
node_ptr = page_cur_get_rec(page_cursor); node_ptr = page_cur_get_rec(page_cursor);
......
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