mirror of
https://github.com/MariaDB/server.git
synced 2025-08-31 22:22:30 +03:00
Merge.
This commit is contained in:
@@ -404,7 +404,7 @@ SELECT STRAIGHT_JOIN t2.e FROM t1,t2 WHERE t2.d=1 AND t1.b=t2.e
|
||||
ORDER BY t1.b, t1.c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 32 Using temporary; Using filesort
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 16 Using where; Using join buffer
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 16 Using where; Using join buffer (flat, BNL join)
|
||||
SELECT STRAIGHT_JOIN t2.e FROM t1,t2 WHERE t2.d=1 AND t1.b=t2.e
|
||||
ORDER BY t1.b, t1.c;
|
||||
e
|
||||
@@ -846,7 +846,7 @@ select * from t1, t2, t3 where t3.a=t1.a and t2.a=t1.b;
|
||||
a b a a
|
||||
explain select * from t1, t2, t3 where t3.a=t1.a and t2.a=t1.b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 Using index
|
||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
|
||||
We expect rnd_next=5, and read_key must be 0 because of short-cutting:
|
||||
@@ -889,8 +889,8 @@ Z
|
||||
vv: Following query must use ALL(t1), eq_ref(A), eq_ref(B): vv
|
||||
explain select * from t1, t2 A, t2 B where A.a = t1.a and B.a=A.b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10
|
||||
1 SIMPLE A eq_ref PRIMARY PRIMARY 4 test.t1.a 1
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 Using where
|
||||
1 SIMPLE A eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where
|
||||
1 SIMPLE B eq_ref PRIMARY PRIMARY 4 test.A.b 1
|
||||
show status like '%cost%';
|
||||
Variable_name Value
|
||||
@@ -910,7 +910,7 @@ INSERT INTO t1 SELECT a + 64, b FROM t1;
|
||||
INSERT INTO t2 SELECT a, b FROM t1;
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 2
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 2 Using where
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.b 1
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
@@ -924,7 +924,7 @@ a b c d
|
||||
2 NULL 2 NULL
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using filesort
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using where; Using filesort
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.b 1
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
@@ -1095,11 +1095,11 @@ ON t4.a = t5.a
|
||||
ON t1.a = t3.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
||||
1 SIMPLE t3 ref a a 5 test.t1.a 2 Using index
|
||||
1 SIMPLE t3 ref a a 5 test.t1.a 2 Using where; Using index
|
||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 0 Using where
|
||||
1 SIMPLE t5 ALL NULL NULL NULL NULL 0 Using where
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 0 Using where
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using where; Using join buffer
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using where; Using join buffer (flat, BNL join)
|
||||
SELECT *
|
||||
FROM
|
||||
t1 JOIN t2 ON t1.a = t2.a
|
||||
@@ -1220,4 +1220,34 @@ f1
|
||||
2
|
||||
DEALLOCATE PREPARE stmt;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# BUG#47217 Lost optimization caused slowdown & wrong result.
|
||||
#
|
||||
CREATE TABLE t1 (pk INT, v VARCHAR(2), PRIMARY KEY(pk));
|
||||
CREATE INDEX ix1 ON t1(v);
|
||||
CREATE TABLE t2 (pk INT, v VARCHAR(2), PRIMARY KEY(pk));
|
||||
CREATE INDEX ix2 ON t2(v);
|
||||
INSERT INTO t1 VALUES (1,'a'),(2,NULL);
|
||||
INSERT INTO t2 VALUES (1,NULL);
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON t1.v = t2.v ORDER BY 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON t1.v = t2.v;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
INSERT INTO t1 VALUES (3,'b'),(4,NULL),(5,'c'),(6,'cc'),(7,'d'),
|
||||
(8,'dd'),(9,'e'),(10,'ee');
|
||||
INSERT INTO t2 VALUES (2,NULL);
|
||||
FLUSH STATUS;
|
||||
SELECT * FROM t1 JOIN t2 ON t1.v = t2.v WHERE t2.v IS NULL ORDER BY 1;
|
||||
pk v pk v
|
||||
SHOW STATUS LIKE 'Handler_read_%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 1
|
||||
Handler_read_next 0
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 1
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.1 tests
|
||||
|
Reference in New Issue
Block a user