mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-17381 Wrong query result with LATERAL DERIVED optimization
and join_cache_level=6 This bug was fixed by the patch for mdev-17382 applied to 5.5.
This commit is contained in:
@ -53,3 +53,44 @@ eval EXPLAIN $q;
|
||||
eval $q;
|
||||
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
||||
--echo #
|
||||
--echo # Bug mdev-17381: equi-join of derived table with join_cache_level=4
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (
|
||||
id int NOT NULL,
|
||||
amount decimal DEFAULT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=INNODB;
|
||||
|
||||
CREATE TABLE t2 (
|
||||
id int NOT NULL,
|
||||
name varchar(50) DEFAULT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=INNODB;
|
||||
|
||||
INSERT INTO t1 VALUES
|
||||
(1, 10.0000), (2, 20.0000), (3, 30.0000), (4, 40.0000),
|
||||
(5, NULL), (6, NULL), (7, 70.0000), (8, 80.0000);
|
||||
|
||||
INSERT INTO t2 VALUES
|
||||
(1,'A'), (2,'B'), (3,'C'), (4,'D'), (5, NULL), (6, NULL),
|
||||
(7,'E'), (8,'F'), (9,'G'), (10,'H'), (11, NULL), (12, NULL);
|
||||
|
||||
set join_cache_level=4;
|
||||
|
||||
let $q=
|
||||
SELECT t2.id,t2.name,t.total_amt
|
||||
FROM t2
|
||||
LEFT JOIN
|
||||
(SELECT id, sum(amount) total_amt FROM t1 GROUP BY id) AS t
|
||||
ON t2.id=t.id
|
||||
WHERE t2.id < 3;
|
||||
|
||||
eval $q;
|
||||
eval EXPLAIN $q;
|
||||
|
||||
set join_cache_level=default;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
Reference in New Issue
Block a user