mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fix for BUG#8441: in index_merge code when creating index search tuples use
KEY_PART_INFO::store_length, not KEY_PART_INFO::length (like range code does)
This commit is contained in:
@ -123,3 +123,14 @@ key1a = 2 and key1b is null and key3a = 2 and key3b is null;
|
||||
count(*)
|
||||
4
|
||||
drop table t1,t2;
|
||||
create table t1 (
|
||||
id1 int,
|
||||
id2 date ,
|
||||
index idx2 (id1,id2),
|
||||
index idx1 (id2)
|
||||
) engine = innodb;
|
||||
insert into t1 values(1,'20040101'), (2,'20040102');
|
||||
select * from t1 where id1 = 1 and id2= '20040101';
|
||||
id1 id2
|
||||
1 2004-01-01
|
||||
drop table t1;
|
||||
|
@ -120,3 +120,14 @@ select count(*) from t1 where
|
||||
|
||||
drop table t1,t2;
|
||||
|
||||
# Test for BUG#8441
|
||||
create table t1 (
|
||||
id1 int,
|
||||
id2 date ,
|
||||
index idx2 (id1,id2),
|
||||
index idx1 (id2)
|
||||
) engine = innodb;
|
||||
insert into t1 values(1,'20040101'), (2,'20040102');
|
||||
select * from t1 where id1 = 1 and id2= '20040101';
|
||||
drop table t1;
|
||||
|
||||
|
@ -2593,12 +2593,12 @@ static double ror_scan_selectivity(const ROR_INTERSECT_INFO *info,
|
||||
{
|
||||
tuple_arg= scan->sel_arg;
|
||||
/* Here we use the length of the first key part */
|
||||
tuple_arg->store_min(key_part->length, &key_ptr, 0);
|
||||
tuple_arg->store_min(key_part->store_length, &key_ptr, 0);
|
||||
}
|
||||
while (tuple_arg->next_key_part != sel_arg)
|
||||
{
|
||||
tuple_arg= tuple_arg->next_key_part;
|
||||
tuple_arg->store_min(key_part[tuple_arg->part].length, &key_ptr, 0);
|
||||
tuple_arg->store_min(key_part[tuple_arg->part].store_length, &key_ptr, 0);
|
||||
}
|
||||
min_range.length= max_range.length= ((char*) key_ptr - (char*) key_val);
|
||||
records= (info->param->table->file->
|
||||
|
Reference in New Issue
Block a user