summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2004-06-14 12:39:46 +0400
committerunknown <sergefp@mysql.com>2004-06-14 12:39:46 +0400
commit8640403f70a56f101f464fcd100d4d0ba93e7ed5 (patch)
tree484d5f8ba9f92742ca4148720350eedc74d102ff
parente851a009d4381972895e1d687e6f1448d83e1753 (diff)
downloadmariadb-git-8640403f70a56f101f464fcd100d4d0ba93e7ed5.tar.gz
Post-merge fixes
-rw-r--r--sql/opt_range.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index d397434c09f..9b279592c28 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -2433,7 +2433,7 @@ bool ror_intersect_add(const PARAM *param, ROR_INTERSECT_INFO *info,
KEY_PART_INFO *key_part=
info->param->table->key_info[ror_scan->keynr].key_part;
double selectivity_mult= 1.0;
- char key_val[MAX_KEY_LENGTH+MAX_FIELD_WIDTH]; /* key values tuple */
+ byte key_val[MAX_KEY_LENGTH+MAX_FIELD_WIDTH]; /* key values tuple */
DBUG_ENTER("ror_intersect_add");
DBUG_PRINT("info", ("Current selectivity= %g", info->records_fract));
@@ -2445,6 +2445,12 @@ bool ror_intersect_add(const PARAM *param, ROR_INTERSECT_INFO *info,
bitmap_is_set(&info->covered_fields, key_part->fieldnr);
ha_rows prev_records= param->table->file->records;
+ key_range min_range;
+ key_range max_range;
+ min_range.key= (byte*) key_val;
+ min_range.flag= HA_READ_KEY_EXACT;
+ max_range.key= (byte*) key_val;
+ max_range.flag= HA_READ_AFTER_KEY;
for(i= 0, sel_arg= ror_scan->sel_arg; sel_arg;
i++, sel_arg= sel_arg->next_key_part)
@@ -2466,12 +2472,11 @@ bool ror_intersect_add(const PARAM *param, ROR_INTERSECT_INFO *info,
}
}
ha_rows records;
+ min_range.length= max_range.length= key_ptr - key_val;
records= param->table->file->
records_in_range(ror_scan->keynr,
- (byte*)key_val, key_ptr - key_val,
- HA_READ_KEY_EXACT,
- (byte*)key_val, key_ptr - key_val,
- HA_READ_AFTER_KEY);
+ &min_range,
+ &max_range);
if (cur_covered)
{
/* uncovered -> covered */