Commit 61f2abba authored by unknown's avatar unknown
Browse files

Merge bk-internal:/home/bk/mysql-5.0

into serg.mylan:/usr/home/serg/Abk/mysql-5.0

parents b60d8e7b 965f2b4d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
explain select * from t1 where pk1 < 7500 and key1 = 10;
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;
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 −0
Original line number Diff line number Diff line
@@ -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
# (this is because it is used as a filter, not for retrieval)
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;
  
# Verify that keys with 'tails' of PK members are ok.
+5 −2
Original line number Diff line number Diff line
@@ -2562,7 +2562,8 @@ static double ror_scan_selectivity(const ROR_INTERSECT_INFO *info,
  char *key_ptr= (char*) key_val;
  SEL_ARG *sel_arg, *tuple_arg= NULL;
  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 max_range;
  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;
      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)
    {
      /* create (part1val, ..., part{n-1}val) tuple. */