Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
This commit is contained in:
commit
61f2abba64
@ -59,7 +59,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ref key1 key1 4 const 100 Using where
|
1 SIMPLE t1 ref key1 key1 4 const 100 Using where
|
||||||
explain select * from t1 where pk1 < 7500 and key1 = 10;
|
explain select * from t1 where pk1 < 7500 and key1 = 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index_merge PRIMARY,key1 key1,PRIMARY 4,4 NULL 38 Using intersect(key1,PRIMARY); Using where
|
1 SIMPLE t1 index_merge PRIMARY,key1 key1,PRIMARY 4,4 NULL ROWS Using intersect(key1,PRIMARY); Using where
|
||||||
explain select * from t1 where pktail1ok=1 and key1=10;
|
explain select * from t1 where pktail1ok=1 and key1=10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index_merge key1,pktail1ok key1,pktail1ok 4,4 NULL 1 Using intersect(key1,pktail1ok); Using where
|
1 SIMPLE t1 index_merge key1,pktail1ok key1,pktail1ok 4,4 NULL 1 Using intersect(key1,pktail1ok); Using where
|
||||||
|
@ -63,6 +63,7 @@ select pk1,pk2 from t1 where key1 = 10 and key2=10 and 2*pk1+1 < 2*96+1;
|
|||||||
# Verify that CPK is always used for index intersection scans
|
# Verify that CPK is always used for index intersection scans
|
||||||
# (this is because it is used as a filter, not for retrieval)
|
# (this is because it is used as a filter, not for retrieval)
|
||||||
explain select * from t1 where badkey=1 and key1=10;
|
explain select * from t1 where badkey=1 and key1=10;
|
||||||
|
--replace_result 38 ROWS 37 ROWS
|
||||||
explain select * from t1 where pk1 < 7500 and key1 = 10;
|
explain select * from t1 where pk1 < 7500 and key1 = 10;
|
||||||
|
|
||||||
# Verify that keys with 'tails' of PK members are ok.
|
# Verify that keys with 'tails' of PK members are ok.
|
||||||
|
@ -2562,7 +2562,8 @@ static double ror_scan_selectivity(const ROR_INTERSECT_INFO *info,
|
|||||||
char *key_ptr= (char*) key_val;
|
char *key_ptr= (char*) key_val;
|
||||||
SEL_ARG *sel_arg, *tuple_arg= NULL;
|
SEL_ARG *sel_arg, *tuple_arg= NULL;
|
||||||
bool cur_covered;
|
bool cur_covered;
|
||||||
bool prev_covered= bitmap_is_set(&info->covered_fields, key_part->fieldnr);
|
bool prev_covered= (bitmap_is_set(&info->covered_fields,
|
||||||
|
key_part->fieldnr))? 1 : 0;
|
||||||
key_range min_range;
|
key_range min_range;
|
||||||
key_range max_range;
|
key_range max_range;
|
||||||
min_range.key= (byte*) key_val;
|
min_range.key= (byte*) key_val;
|
||||||
@ -2575,7 +2576,9 @@ static double ror_scan_selectivity(const ROR_INTERSECT_INFO *info,
|
|||||||
for(i= 0, sel_arg= scan->sel_arg; sel_arg;
|
for(i= 0, sel_arg= scan->sel_arg; sel_arg;
|
||||||
i++, sel_arg= sel_arg->next_key_part)
|
i++, sel_arg= sel_arg->next_key_part)
|
||||||
{
|
{
|
||||||
cur_covered= bitmap_is_set(&info->covered_fields, (key_part + i)->fieldnr);
|
DBUG_PRINT("info",("sel_arg step"));
|
||||||
|
cur_covered= (bitmap_is_set(&info->covered_fields,
|
||||||
|
(key_part + i)->fieldnr))? 1 : 0;
|
||||||
if (cur_covered != prev_covered)
|
if (cur_covered != prev_covered)
|
||||||
{
|
{
|
||||||
/* create (part1val, ..., part{n-1}val) tuple. */
|
/* create (part1val, ..., part{n-1}val) tuple. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user