mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
62 lines
2.1 KiB
Text
62 lines
2.1 KiB
Text
CREATE TABLE t1 (id int(11) NOT NULL PRIMARY KEY, name varchar(20),
|
|
INDEX (name)) ENGINE=InnoDB;
|
|
CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11),
|
|
FOREIGN KEY (fkey) REFERENCES t2(id)) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (1,'A1'),(2,'A2'),(3,'B');
|
|
INSERT INTO t2 VALUES (1,1),(2,2),(3,2),(4,3),(5,3);
|
|
EXPLAIN
|
|
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
|
|
WHERE t1.name LIKE 'A%';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index
|
|
1 SIMPLE t2 ref fkey fkey 5 test.t1.id 1 Using index
|
|
EXPLAIN
|
|
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
|
|
WHERE t1.name LIKE 'A%' OR FALSE;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 index NULL fkey 5 NULL 5 Using index
|
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.fkey 1 Using where
|
|
DROP TABLE t1,t2;
|
|
#
|
|
# BUG#58456: Assertion 0 in QUICK_INDEX_MERGE_SELECT::need_sorted_output
|
|
# in opt_range.h
|
|
#
|
|
CREATE TABLE t1 (
|
|
col_int INT,
|
|
col_int_key INT,
|
|
pk INT NOT NULL,
|
|
PRIMARY KEY (pk),
|
|
KEY col_int_key (col_int_key)
|
|
) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (NULL,1,1), (6,2,2), (5,3,3), (NULL,4,4);
|
|
INSERT INTO t1 VALUES (1,NULL,6), (8,5,7), (NULL,8,8), (8,NULL,5);
|
|
CREATE TABLE t2 (
|
|
pk INT PRIMARY KEY
|
|
) ENGINE=InnoDB;
|
|
|
|
EXPLAIN SELECT t1.pk
|
|
FROM t2 LEFT JOIN t1 ON t2.pk = t1.col_int
|
|
WHERE t1.col_int_key BETWEEN 5 AND 6
|
|
AND t1.pk IS NULL OR t1.pk IN (5)
|
|
ORDER BY pk;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 const PRIMARY,col_int_key PRIMARY 4 const 1 Using where
|
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.col_int 1 Using index
|
|
|
|
SELECT t1.pk
|
|
FROM t2 LEFT JOIN t1 ON t2.pk = t1.col_int
|
|
WHERE t1.col_int_key BETWEEN 5 AND 6
|
|
AND t1.pk IS NULL OR t1.pk IN (5)
|
|
ORDER BY pk;
|
|
pk
|
|
|
|
DROP TABLE t1,t2;
|
|
# End BUG#58456
|
|
CREATE TABLE t1(a int, b int, KEY (a), PRIMARY KEY (b)) ENGINE=InnoDB;
|
|
CREATE TABLE t2 (b int, PRIMARY KEY (b));
|
|
INSERT INTO t2 VALUES (4),(9);
|
|
SELECT STRAIGHT_JOIN t1.a FROM t1 RIGHT JOIN t2 ON t1.b = t2.b
|
|
WHERE (t1.b NOT BETWEEN 1 AND 7 OR t1.a IS NULL AND t1.b = t2.b) AND t2.b = 4
|
|
GROUP BY 1;
|
|
a
|
|
DROP TABLE t1,t2;
|