summaryrefslogtreecommitdiff
path: root/sql/opt_range_mrr.cc
diff options
context:
space:
mode:
authorSergey Petrunya <psergey@askmonty.org>2010-10-10 17:38:17 +0300
committerSergey Petrunya <psergey@askmonty.org>2010-10-10 17:38:17 +0300
commita285ce3e588adf93baccc2bcf4000177c396b70e (patch)
tree5d8ecdb7867ca78617ba844fcf3cce7f1662f3bb /sql/opt_range_mrr.cc
parent72dd7575cd8b9372ddb79cc4c94050e4ee1e5ee1 (diff)
downloadmariadb-git-a285ce3e588adf93baccc2bcf4000177c396b70e.tar.gz
Post-merge fixes part 1
Diffstat (limited to 'sql/opt_range_mrr.cc')
-rw-r--r--sql/opt_range_mrr.cc23
1 files changed, 3 insertions, 20 deletions
diff --git a/sql/opt_range_mrr.cc b/sql/opt_range_mrr.cc
index d2b40a8df4e..9eeec653355 100644
--- a/sql/opt_range_mrr.cc
+++ b/sql/opt_range_mrr.cc
@@ -245,8 +245,7 @@ walk_up_n_right:
if (!(cur->min_key_flag & ~NULL_RANGE) && !cur->max_key_flag &&
(uint)key_tree->part+1 == seq->param->table->key_info[seq->real_keyno].key_parts &&
- (seq->param->table->key_info[seq->real_keyno].flags & (HA_NOSAME | HA_END_SPACE_KEY)) ==
- HA_NOSAME &&
+ (seq->param->table->key_info[seq->real_keyno].flags & HA_NOSAME) &&
range->start_key.length == range->end_key.length &&
!memcmp(seq->param->min_key,seq->param->max_key,range->start_key.length))
range->range_flag= UNIQUE_RANGE | (cur->min_key_flag & NULL_RANGE);
@@ -323,24 +322,8 @@ uint quick_range_seq_next(range_seq_t rseq, KEY_MULTI_RANGE *range)
return 1; /* no more ranges */
QUICK_RANGE *cur= *(ctx->cur);
- key_range *start_key= &range->start_key;
- key_range *end_key= &range->end_key;
-
- start_key->key= cur->min_key;
- start_key->length= cur->min_length;
- start_key->keypart_map= cur->min_keypart_map;
- start_key->flag= ((cur->flag & NEAR_MIN) ? HA_READ_AFTER_KEY :
- (cur->flag & EQ_RANGE) ?
- HA_READ_KEY_EXACT : HA_READ_KEY_OR_NEXT);
- end_key->key= cur->max_key;
- end_key->length= cur->max_length;
- end_key->keypart_map= cur->max_keypart_map;
- /*
- We use HA_READ_AFTER_KEY here because if we are reading on a key
- prefix. We want to find all keys with this prefix.
- */
- end_key->flag= (cur->flag & NEAR_MAX ? HA_READ_BEFORE_KEY :
- HA_READ_AFTER_KEY);
+ cur->make_min_endpoint(&range->start_key);
+ cur->make_max_endpoint(&range->end_key);
range->range_flag= cur->flag;
ctx->cur++;
return 0;