Commit 20cbf9c2 authored by unknown's avatar unknown
Browse files

Merge rurik.mysql.com:/home/igor/mysql-4.0

into rurik.mysql.com:/home/igor/dev/mysql-4.0-0

parents cb754b98 95409456
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -2364,3 +2364,16 @@ EXPLAIN SELECT i FROM t1 WHERE i=1;
table	type	possible_keys	key	key_len	ref	rows	Extra
t1	const	PRIMARY	PRIMARY	4	const	1	Using index
DROP TABLE t1;
CREATE TABLE t1 ( a BLOB, INDEX (a(20)) );
CREATE TABLE t2 ( a BLOB, INDEX (a(20)) );
INSERT INTO t1 VALUES ('one'),('two'),('three'),('four'),('five');
INSERT INTO t2 VALUES ('one'),('two'),('three'),('four'),('five');
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 USE INDEX (a) ON t1.a=t2.a;
table	type	possible_keys	key	key_len	ref	rows	Extra
t1	ALL	NULL	NULL	NULL	NULL	5	
t2	ref	a	a	23	t1.a	5	
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 FORCE INDEX (a) ON t1.a=t2.a;
table	type	possible_keys	key	key_len	ref	rows	Extra
t1	ALL	NULL	NULL	NULL	NULL	5	
t2	ref	a	a	23	t1.a	5	
DROP TABLE t1, t2;
+15 −0
Original line number Diff line number Diff line
@@ -1909,3 +1909,18 @@ EXPLAIN SELECT i FROM t1 WHERE i=1;
EXPLAIN SELECT i FROM t1 WHERE i=1;

DROP TABLE t1;

#
# Test case for bug 7520: a wrong cost of the index for a BLOB field
#

CREATE TABLE t1 ( a BLOB, INDEX (a(20)) );
CREATE TABLE t2 ( a BLOB, INDEX (a(20)) );

INSERT INTO t1 VALUES ('one'),('two'),('three'),('four'),('five');
INSERT INTO t2 VALUES ('one'),('two'),('three'),('four'),('five');

EXPLAIN SELECT * FROM t1 LEFT JOIN t2 USE INDEX (a) ON t1.a=t2.a;
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 FORCE INDEX (a) ON t1.a=t2.a;

DROP TABLE t1, t2;
+1 −0
Original line number Diff line number Diff line
@@ -486,6 +486,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
	    if (!(field->flags & BINARY_FLAG))
	      keyinfo->flags|= HA_END_SPACE_KEY;
	  }
          set_if_bigger(outparam->max_key_length, keyinfo->key_length);
	  if (i == 0 && key != primary_key)
	    field->flags |=
	      ((keyinfo->flags & HA_NOSAME) &&