diff options
author | bell@sanja.is.com.ua <> | 2003-10-19 14:25:33 +0300 |
---|---|---|
committer | bell@sanja.is.com.ua <> | 2003-10-19 14:25:33 +0300 |
commit | 9d294b869e6f092a6baa28b26f3ba3835dc9890d (patch) | |
tree | d43b31d4c802179e6588987ef6add594f2e40239 /mysql-test | |
parent | 2586a56be5998bbe716f3fa7d0ba2a9b92dfdfad (diff) | |
download | mariadb-git-9d294b869e6f092a6baa28b26f3ba3835dc9890d.tar.gz |
correct table name assigned to temporary table field:
- correct table name shown in EXPLAIN Iindex reference)
- pointer on freed memmory (reallocation of table name in reusing table entry) can't be used in EXPLAIN
(BUG#1584)
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/derived.result | 15 | ||||
-rw-r--r-- | mysql-test/r/subselect.result | 7 | ||||
-rw-r--r-- | mysql-test/t/derived.test | 10 | ||||
-rw-r--r-- | mysql-test/t/subselect.test | 9 |
4 files changed, 25 insertions, 16 deletions
diff --git a/mysql-test/r/derived.result b/mysql-test/r/derived.result index d24ac5e898a..12d8bbaf8ae 100644 --- a/mysql-test/r/derived.result +++ b/mysql-test/r/derived.result @@ -215,3 +215,18 @@ ERROR 42000: You have an error in your SQL syntax. Check the manual that corres insert into (select * from t1) values (5); ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(select * from t1) values (5)' at line 1 drop table t1; +create table t1 (E1 INTEGER UNSIGNED NOT NULL, E2 INTEGER UNSIGNED NOT NULL, E3 INTEGER UNSIGNED NOT NULL, PRIMARY KEY(E1) +); +insert into t1 VALUES(1,1,1), (2,2,1); +select count(*) from t1 INNER JOIN (SELECT A.E1, A.E2, A.E3 FROM t1 AS A WHERE A.E3 = (SELECT MAX(B.E3) FROM t1 AS B WHERE A.E2 = B.E2)) AS THEMAX ON t1.E1 = THEMAX.E2 AND t1.E1 = t1.E2; +count(*) +2 +explain select count(*) from t1 INNER JOIN (SELECT A.E1, A.E2, A.E3 FROM t1 AS A WHERE A.E3 = (SELECT MAX(B.E3) FROM t1 AS B WHERE A.E2 = B.E2)) AS THEMAX ON t1.E1 = THEMAX.E2 AND t1.E1 = t1.E2; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 +1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 THEMAX.E2 1 Using where +2 DERIVED t1 ALL NULL NULL NULL NULL 2 Using where +3 DEPENDENT SUBQUERY B ALL NULL NULL NULL NULL 2 Using where +Warnings: +Note 1275 Field or reference 'A.E2' of SELECT #3 was resolved in SELECT #2 +drop table t1; diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index a2460b8f11a..14a132531ca 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -1439,10 +1439,3 @@ id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t3 ALL NULL NULL NULL NULL 3 Using where 2 SUBQUERY t2 ALL NULL NULL NULL NULL 4 Using temporary; Using filesort drop table t2, t3; -create table t1 (E1 INTEGER UNSIGNED NOT NULL, E2 INTEGER UNSIGNED NOT NULL, E3 INTEGER UNSIGNED NOT NULL, PRIMARY KEY(E1) -); -insert into t1 VALUES(1,1,1), (2,2,1); -select count(*) from t1 INNER JOIN (SELECT A.E1, A.E2, A.E3 FROM t1 AS A WHERE A.E3 = (SELECT MAX(B.E3) FROM t1 AS B WHERE A.E2 = B.E2)) AS THEMAX ON t1.E1 = THEMAX.E2 AND t1.E1 = t1.E2; -count(*) -2 -drop table t1; diff --git a/mysql-test/t/derived.test b/mysql-test/t/derived.test index a8583aa5ea3..80b131ac6fe 100644 --- a/mysql-test/t/derived.test +++ b/mysql-test/t/derived.test @@ -122,3 +122,13 @@ delete from (select * from t1); -- error 1064 insert into (select * from t1) values (5); drop table t1; + +# +# deived tables with subquery inside all by one table +# +create table t1 (E1 INTEGER UNSIGNED NOT NULL, E2 INTEGER UNSIGNED NOT NULL, E3 INTEGER UNSIGNED NOT NULL, PRIMARY KEY(E1) +); +insert into t1 VALUES(1,1,1), (2,2,1); +select count(*) from t1 INNER JOIN (SELECT A.E1, A.E2, A.E3 FROM t1 AS A WHERE A.E3 = (SELECT MAX(B.E3) FROM t1 AS B WHERE A.E2 = B.E2)) AS THEMAX ON t1.E1 = THEMAX.E2 AND t1.E1 = t1.E2; +explain select count(*) from t1 INNER JOIN (SELECT A.E1, A.E2, A.E3 FROM t1 AS A WHERE A.E3 = (SELECT MAX(B.E3) FROM t1 AS B WHERE A.E2 = B.E2)) AS THEMAX ON t1.E1 = THEMAX.E2 AND t1.E1 = t1.E2; +drop table t1; diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index afc2d1a9328..8c0b3fb3919 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -965,12 +965,3 @@ insert into t2 values (2,2), (2,1), (3,3), (3,1); select * from t3 where a > all (select max(b) from t2 group by a); explain select * from t3 where a > all (select max(b) from t2 group by a); drop table t2, t3; - -# -# deived tables with subquery inside all by one table -# -create table t1 (E1 INTEGER UNSIGNED NOT NULL, E2 INTEGER UNSIGNED NOT NULL, E3 INTEGER UNSIGNED NOT NULL, PRIMARY KEY(E1) -); -insert into t1 VALUES(1,1,1), (2,2,1); -select count(*) from t1 INNER JOIN (SELECT A.E1, A.E2, A.E3 FROM t1 AS A WHERE A.E3 = (SELECT MAX(B.E3) FROM t1 AS B WHERE A.E2 = B.E2)) AS THEMAX ON t1.E1 = THEMAX.E2 AND t1.E1 = t1.E2; -drop table t1; |