Commit 5c8a14e9 authored by ram@gw.mysql.r18.ru's avatar ram@gw.mysql.r18.ru

A fix (bug #6142: SELECT DISTINCT on key field crashes server)

parent c593ab8e
......@@ -1897,3 +1897,9 @@ id select_type table type possible_keys key key_len ref rows Extra
drop table t1;
drop table t2;
drop table t3;
create table t1 (
a varchar(30), b varchar(30), primary key(a), key(b)
) engine=innodb;
select distinct a from t1;
a
drop table t1;
......@@ -577,3 +577,13 @@ explain select sum(ord(a1)) from t1 where (a1 > 'a') group by a1,a2,b;
drop table t1;
drop table t2;
drop table t3;
#
# Bug #6142: a problem with the empty innodb table
#
create table t1 (
a varchar(30), b varchar(30), primary key(a), key(b)
) engine=innodb;
select distinct a from t1;
drop table t1;
......@@ -7040,17 +7040,16 @@ get_constant_key_infix(KEY *index_info, SEL_ARG *index_range_tree,
static inline uint
get_field_keypart(KEY *index, Field *field)
{
KEY_PART_INFO *part= index->key_part;
KEY_PART_INFO *part, *end;
uint key_part_num= 0;
while (part != part + index->key_parts)
for (part= index->key_part, end= part + index->key_parts; part < end; part++)
{
key_part_num++;
if (field->eq(part->field))
return key_part_num;
part++;
}
return key_part_num;
return 0;
}
......
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