Commit b91173af authored by sergefp@mysql.com's avatar sergefp@mysql.com

BUG#12915: post-review fixes

parent e9f2f943
...@@ -584,8 +584,7 @@ SEL_ARG *SEL_ARG::clone_tree() ...@@ -584,8 +584,7 @@ SEL_ARG *SEL_ARG::clone_tree()
/* /*
Find an index that allows to retrieve first #limit records in the given Find the best index to retrieve first N records in given order
order cheaper then one would retrieve them using full table scan.
SYNOPSIS SYNOPSIS
get_index_for_order() get_index_for_order()
...@@ -594,10 +593,13 @@ SEL_ARG *SEL_ARG::clone_tree() ...@@ -594,10 +593,13 @@ SEL_ARG *SEL_ARG::clone_tree()
limit Number of records that will be retrieved limit Number of records that will be retrieved
DESCRIPTION DESCRIPTION
Find the best index that allows to retrieve first #limit records in the
given order cheaper then one would retrieve them using full table scan.
IMPLEMENTATION
Run through all table indexes and find the shortest index that allows Run through all table indexes and find the shortest index that allows
records to be retrieved in given order. If there is such index and records to be retrieved in given order. We look for the shortest index
reading first #limit records from it is cheaper then scanning the entire as we will have fewer index pages to read with it.
table, return it.
This function is used only by UPDATE/DELETE, so we take into account how This function is used only by UPDATE/DELETE, so we take into account how
the UPDATE/DELETE code will work: the UPDATE/DELETE code will work:
......
...@@ -235,13 +235,16 @@ static int rr_quick(READ_RECORD *info) ...@@ -235,13 +235,16 @@ static int rr_quick(READ_RECORD *info)
/* /*
Read next index record. The calling convention of this function is A READ_RECORD::read_record implementation that reads index sequentially
compatible with READ_RECORD::read_record.
SYNOPSIS SYNOPSIS
rr_index() rr_index()
info Scan info info Scan info
DESCRIPTION
Read the next index record (in forward direction) and translate return
value.
RETURN RETURN
0 Ok 0 Ok
-1 End of records -1 End of records
...@@ -271,13 +274,13 @@ static int rr_index(READ_RECORD *info) ...@@ -271,13 +274,13 @@ static int rr_index(READ_RECORD *info)
if (tmp != HA_ERR_RECORD_DELETED) if (tmp != HA_ERR_RECORD_DELETED)
{ {
if (tmp == HA_ERR_END_OF_FILE) if (tmp == HA_ERR_END_OF_FILE)
tmp= -1; tmp= -1;
else else
{ {
if (info->print_error) if (info->print_error)
info->table->file->print_error(tmp,MYF(0)); info->table->file->print_error(tmp,MYF(0));
if (tmp < 0) // Fix negative BDB errno if (tmp < 0) // Fix negative BDB errno
tmp=1; tmp=1;
} }
break; break;
} }
......
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