Commit b603e47d authored by unknown's avatar unknown

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)


mysql-test/r/index_merge_innodb.result:
  Testcase for BUG8441
mysql-test/t/index_merge_innodb.test:
  Testcase for BUG8441
parent c7e49b6b
...@@ -123,3 +123,14 @@ key1a = 2 and key1b is null and key3a = 2 and key3b is null; ...@@ -123,3 +123,14 @@ key1a = 2 and key1b is null and key3a = 2 and key3b is null;
count(*) count(*)
4 4
drop table t1,t2; 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 ...@@ -120,3 +120,14 @@ select count(*) from t1 where
drop table t1,t2; 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, ...@@ -2593,12 +2593,12 @@ static double ror_scan_selectivity(const ROR_INTERSECT_INFO *info,
{ {
tuple_arg= scan->sel_arg; tuple_arg= scan->sel_arg;
/* Here we use the length of the first key part */ /* 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) while (tuple_arg->next_key_part != sel_arg)
{ {
tuple_arg= tuple_arg->next_key_part; 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); min_range.length= max_range.length= ((char*) key_ptr - (char*) key_val);
records= (info->param->table->file-> records= (info->param->table->file->
......
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