mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
fixed subselect explain bug
mysql-test/r/subselect.result: test for subselect explain bug mysql-test/t/subselect.test: test for subselect explain bug
This commit is contained in:
@ -54,9 +54,9 @@ explain select * from t2 where t2.b=(select a from t3 order by 1 desc limit 1)
|
||||
union (select * from t4 where t4.b=(select max(t2.a)*4 from t2) order by a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 where used
|
||||
2 SUBSELECT t3 ALL NULL NULL NULL NULL 3 Using filesort
|
||||
3 UNION t4 ALL NULL NULL NULL NULL 3 where used; Using filesort
|
||||
4 SUBSELECT t2 ALL NULL NULL NULL NULL 2
|
||||
2 SUBSELECT t3 ALL NULL NULL NULL NULL 3 Using filesort
|
||||
select (select a from t3 where a<t2.a*4 order by 1 desc limit 1), a from t2;
|
||||
(select a from t3 where a<t2.a*4 order by 1 desc limit 1) a
|
||||
3 1
|
||||
@ -163,9 +163,7 @@ UNIQUE KEY `email` (`email`)
|
||||
INSERT INTO inscrit (pseudo,email) VALUES ('joce','test');
|
||||
INSERT INTO inscrit (pseudo,email) VALUES ('joce1','test1');
|
||||
INSERT INTO inscrit (pseudo,email) VALUES ('2joce1','2test1');
|
||||
EXPLAIN SELECT pseudo,(SELECT email FROM inscrit WHERE pseudo=(SELECT
|
||||
pseudo FROM inscrit WHERE pseudo='joce')) FROM inscrit WHERE pseudo=(SELECT
|
||||
pseudo FROM inscrit WHERE pseudo='joce');
|
||||
EXPLAIN SELECT pseudo,(SELECT email FROM inscrit WHERE pseudo=(SELECT pseudo FROM inscrit WHERE pseudo='joce')) FROM inscrit WHERE pseudo=(SELECT pseudo FROM inscrit WHERE pseudo='joce');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY inscrit const PRIMARY PRIMARY 35 const 1
|
||||
4 SUBSELECT inscrit const PRIMARY PRIMARY 35 const 1
|
||||
@ -183,3 +181,21 @@ joce
|
||||
SELECT pseudo FROM inscrit WHERE pseudo=(SELECT pseudo FROM inscrit WHERE pseudo LIKE '%joce%');
|
||||
Subselect returns more than 1 record
|
||||
drop table if exists t1,t2,t3,t4,t5,attend,clinic,inscrit;
|
||||
drop table if exists searchconthardwarefr3;
|
||||
CREATE TABLE `searchconthardwarefr3` (
|
||||
`topic` mediumint(8) unsigned NOT NULL default '0',
|
||||
`date` date NOT NULL default '0000-00-00',
|
||||
`pseudo` varchar(35) character set latin1 NOT NULL default '',
|
||||
PRIMARY KEY (`pseudo`,`date`,`topic`),
|
||||
KEY `topic` (`topic`)
|
||||
) TYPE=MyISAM ROW_FORMAT=DYNAMIC;
|
||||
INSERT INTO searchconthardwarefr3 (topic,date,pseudo) VALUES
|
||||
('43506','2002-10-02','joce'),('40143','2002-08-03','joce');
|
||||
EXPLAIN SELECT DISTINCT date FROM searchconthardwarefr3 WHERE date='2002-08-03';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE searchconthardwarefr3 index NULL PRIMARY 41 NULL 2 where used; Using index
|
||||
EXPLAIN SELECT (SELECT DISTINCT date FROM searchconthardwarefr3 WHERE date='2002-08-03');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY No tables used
|
||||
2 SUBSELECT searchconthardwarefr3 index NULL PRIMARY 41 NULL 2 where used; Using index
|
||||
drop table searchconthardwarefr3;
|
||||
|
@ -83,9 +83,7 @@ CREATE TABLE `inscrit` (
|
||||
INSERT INTO inscrit (pseudo,email) VALUES ('joce','test');
|
||||
INSERT INTO inscrit (pseudo,email) VALUES ('joce1','test1');
|
||||
INSERT INTO inscrit (pseudo,email) VALUES ('2joce1','2test1');
|
||||
EXPLAIN SELECT pseudo,(SELECT email FROM inscrit WHERE pseudo=(SELECT
|
||||
pseudo FROM inscrit WHERE pseudo='joce')) FROM inscrit WHERE pseudo=(SELECT
|
||||
pseudo FROM inscrit WHERE pseudo='joce');
|
||||
EXPLAIN SELECT pseudo,(SELECT email FROM inscrit WHERE pseudo=(SELECT pseudo FROM inscrit WHERE pseudo='joce')) FROM inscrit WHERE pseudo=(SELECT pseudo FROM inscrit WHERE pseudo='joce');
|
||||
-- error 1239
|
||||
SELECT pseudo FROM inscrit WHERE pseudo=(SELECT pseudo,email FROM
|
||||
inscrit WHERE pseudo='joce');
|
||||
@ -96,4 +94,18 @@ SELECT pseudo FROM inscrit WHERE pseudo=(SELECT pseudo FROM inscrit WHERE pseudo
|
||||
-- error 1240
|
||||
SELECT pseudo FROM inscrit WHERE pseudo=(SELECT pseudo FROM inscrit WHERE pseudo LIKE '%joce%');
|
||||
|
||||
drop table if exists t1,t2,t3,t4,t5,attend,clinic,inscrit;
|
||||
drop table if exists t1,t2,t3,t4,t5,attend,clinic,inscrit;
|
||||
|
||||
drop table if exists searchconthardwarefr3;
|
||||
CREATE TABLE `searchconthardwarefr3` (
|
||||
`topic` mediumint(8) unsigned NOT NULL default '0',
|
||||
`date` date NOT NULL default '0000-00-00',
|
||||
`pseudo` varchar(35) character set latin1 NOT NULL default '',
|
||||
PRIMARY KEY (`pseudo`,`date`,`topic`),
|
||||
KEY `topic` (`topic`)
|
||||
) TYPE=MyISAM ROW_FORMAT=DYNAMIC;
|
||||
INSERT INTO searchconthardwarefr3 (topic,date,pseudo) VALUES
|
||||
('43506','2002-10-02','joce'),('40143','2002-08-03','joce');
|
||||
EXPLAIN SELECT DISTINCT date FROM searchconthardwarefr3 WHERE date='2002-08-03';
|
||||
EXPLAIN SELECT (SELECT DISTINCT date FROM searchconthardwarefr3 WHERE date='2002-08-03');
|
||||
drop table searchconthardwarefr3;
|
Reference in New Issue
Block a user