mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
Fixed LP bug #806510.
The bug was caused by an incorrect code of the function Item_direct_view_ref::replace_equal_field introduced in the patch for bugs 717577, 724942. The function erroneously returned the wrapped field instead of the Item_direct_view_ref object itself in the cases when no replacement happened. The bug masked two other minor bugs that could result in not quite correct output of the EXPLAIN command for some queries. They were fixed in the patch as well.
This commit is contained in:
parent
f222a51340
commit
5ead4083ec
5 changed files with 100 additions and 4 deletions
|
|
@ -460,3 +460,46 @@ SELECT t3.b, v1.a
|
|||
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
||||
--echo #
|
||||
--echo # LP bug #806510: subquery with outer reference
|
||||
--echo # to a derived_table/view
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a int) ;
|
||||
INSERT INTO t1 VALUES (4), (NULL);
|
||||
|
||||
CREATE TABLE t2 (a int) ;
|
||||
INSERT INTO t2 VALUES (8), (0);
|
||||
|
||||
CREATE TABLE t3 (a int, b int) ;
|
||||
INSERT INTO t3 VALUES (7,8);
|
||||
|
||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||
|
||||
SELECT * FROM t1 t
|
||||
WHERE EXISTS (SELECT t3.a FROM t3, t2
|
||||
WHERE t2.a = t3.b AND t.a != 0);
|
||||
EXPLAIN
|
||||
SELECT * FROM t1 t
|
||||
WHERE EXISTS (SELECT t3.a FROM t3, t2
|
||||
WHERE t2.a = t3.b AND t.a != 0);
|
||||
|
||||
SELECT * FROM (SELECT * FROM t1) t
|
||||
WHERE EXISTS (SELECT t3.a FROM t3, t2
|
||||
WHERE t2.a = t3.b AND t.a != 0);
|
||||
EXPLAIN
|
||||
SELECT * FROM (SELECT * FROM t1) t
|
||||
WHERE EXISTS (SELECT t3.a FROM t3, t2
|
||||
WHERE t2.a = t3.b AND t.a != 0);
|
||||
|
||||
SELECT * FROM v1 t
|
||||
WHERE EXISTS (SELECT t3.a FROM t3, t2
|
||||
WHERE t2.a = t3.b AND t.a != 0);
|
||||
EXPLAIN
|
||||
SELECT * FROM v1 t
|
||||
WHERE EXISTS (SELECT t3.a FROM t3, t2
|
||||
WHERE t2.a = t3.b AND t.a != 0);
|
||||
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue