mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Merge
This commit is contained in:
commit
7f615b2c14
3 changed files with 29 additions and 0 deletions
|
@ -4396,4 +4396,15 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
Warnings:
|
||||
Note 1003 select 1 AS `1` from `test`.`t1` where <in_optimizer>(1,<exists>(select 1 AS `1` from `test`.`t1` where (`test`.`t1`.`a` > 3) group by `test`.`t1`.`a` having (<cache>(1) = <ref_null_helper>(1))))
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(pk int PRIMARY KEY, a int, INDEX idx(a));
|
||||
INSERT INTO t1 VALUES (1, 10), (3, 30), (2, 20);
|
||||
CREATE TABLE t2(pk int PRIMARY KEY, a int, b int, INDEX idxa(a));
|
||||
INSERT INTO t2 VALUES (2, 20, 700), (1, 10, 200), (4, 10, 100);
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT DISTINCT a FROM t2 WHERE t1.a < t2.a ORDER BY b);
|
||||
pk a
|
||||
1 10
|
||||
3 30
|
||||
2 20
|
||||
DROP TABLE t1,t2;
|
||||
End of 5.0 tests.
|
||||
|
|
|
@ -3295,5 +3295,17 @@ EXPLAIN EXTENDED SELECT 1 FROM t1 WHERE 1 IN (SELECT 1 FROM t1 GROUP BY a);
|
|||
EXPLAIN EXTENDED SELECT 1 FROM t1 WHERE 1 IN (SELECT 1 FROM t1 WHERE a > 3 GROUP BY a);
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #38191: Server crash with subquery containing DISTINCT and ORDER BY
|
||||
#
|
||||
|
||||
CREATE TABLE t1(pk int PRIMARY KEY, a int, INDEX idx(a));
|
||||
INSERT INTO t1 VALUES (1, 10), (3, 30), (2, 20);
|
||||
CREATE TABLE t2(pk int PRIMARY KEY, a int, b int, INDEX idxa(a));
|
||||
INSERT INTO t2 VALUES (2, 20, 700), (1, 10, 200), (4, 10, 100);
|
||||
SELECT * FROM t1
|
||||
WHERE EXISTS (SELECT DISTINCT a FROM t2 WHERE t1.a < t2.a ORDER BY b);
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
--echo End of 5.0 tests.
|
||||
|
||||
|
|
|
@ -6469,6 +6469,12 @@ void JOIN::cleanup(bool full)
|
|||
if (tmp_join)
|
||||
tmp_table_param.copy_field= 0;
|
||||
group_fields.delete_elements();
|
||||
/*
|
||||
Ensure that the above delete_elements() would not be called
|
||||
twice for the same list.
|
||||
*/
|
||||
if (tmp_join && tmp_join != this)
|
||||
tmp_join->group_fields= group_fields;
|
||||
/*
|
||||
We can't call delete_elements() on copy_funcs as this will cause
|
||||
problems in free_elements() as some of the elements are then deleted.
|
||||
|
|
Loading…
Reference in a new issue