GIF89a;
Direktori : /usr/share/mysql-test/r/ |
Current File : //usr/share/mysql-test/r/subquery_bugs.result |
# # Bug#27182010 SUBQUERY INCORRECTLY SHOWS DUPLICATE VALUES ON SUBQUERIES # CREATE TABLE p (Id INT,PRIMARY KEY (Id)); INSERT INTO p VALUES (1); # Test UNIQUE KEY with NULL values CREATE TABLE s (Id INT, u INT, UNIQUE KEY o(Id, u) ); INSERT INTO s VALUES (1, NULL),(1, NULL); EXPLAIN SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s.Id FROM s WHERE Id=1 AND u IS NULL)ORDER BY Id DESC; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE p system PRIMARY NULL NULL NULL 1 NULL 1 SIMPLE s ref o o 10 const,const 1 Using where; Using index; FirstMatch(p) EXPLAIN SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s.Id FROM s WHERE Id=1 AND u IS NOT NULL) ORDER BY Id DESC; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE p system PRIMARY NULL NULL NULL 1 NULL 1 SIMPLE s ref o o 5 const 1 Using where; Using index; FirstMatch(p) SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s.Id FROM s WHERE Id=1 AND u IS NULL)ORDER BY Id DESC; Id 1 SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s.Id FROM s WHERE Id=1 AND u IS NOT NULL) ORDER BY Id DESC; Id # UNIQUE KEY without NULL values CREATE TABLE s1 (Id INT, u INT, UNIQUE KEY o(Id, u) ); INSERT INTO s1 VALUES (1, 2),(1, 3); EXPLAIN SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s1.Id FROM s1 WHERE Id=1 AND u IS NOT NULL) ORDER BY Id DESC; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE p system PRIMARY NULL NULL NULL 1 NULL 1 SIMPLE s1 ref o o 5 const 1 Using where; Using index; FirstMatch(p) EXPLAIN SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s1.Id FROM s1 WHERE Id=1 AND u != 1) ORDER BY Id DESC; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE p system PRIMARY NULL NULL NULL 1 NULL 1 SIMPLE s1 ref o o 5 const 1 Using where; Using index; FirstMatch(p) SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s1.Id FROM s1 WHERE Id=1 AND u IS NOT NULL) ORDER BY Id DESC; Id 1 SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s1.Id FROM s1 WHERE Id=1 AND u != 1) ORDER BY Id DESC; Id 1 # NON UNIQUE KEY Scenario CREATE TABLE s2 (Id INT, u INT, KEY o(Id, u) ); INSERT INTO s2 VALUES (1, NULL),(1, NULL); #UNIQUE KEY with NON NULL FIELDS CREATE TABLE s3 (Id INT NOT NULL, u INT NOT NULL, UNIQUE KEY o(Id, u)); INSERT INTO s3 VALUES (1, 2),(1, 3); EXPLAIN SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s.Id FROM s2 s WHERE Id=1 AND u IS NULL) ORDER BY Id DESC; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE p system PRIMARY NULL NULL NULL 1 NULL 1 SIMPLE s ref o o 10 const,const 1 Using where; Using index; FirstMatch(p) EXPLAIN SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s.Id FROM s3 s WHERE Id=1 AND u IS NOT NULL) ORDER BY Id DESC; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE p system PRIMARY NULL NULL NULL 1 NULL 1 SIMPLE s ref o o 4 const 1 Using where; Using index; FirstMatch(p) SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s.Id FROM s2 s WHERE Id=1 AND u IS NULL) ORDER BY Id DESC; Id 1 SELECT p.Id FROM (p) WHERE p.Id IN ( SELECT s.Id FROM s3 s WHERE Id=1 AND u IS NOT NULL) ORDER BY Id DESC; Id 1 DROP TABLE p, s, s1, s2, s3;