1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-21 06:21:35 +03:00
This commit is contained in:
Sergey Petrunya
2011-09-02 14:32:48 +04:00
18 changed files with 154 additions and 36 deletions

View File

@@ -1562,6 +1562,23 @@ select left(a1,7), left(a2,7) from t1_1024 where (a1,3) in (select substring(b1,
left(a1,7) left(a2,7)
1 - 01x 2 - 01x
drop table t1_1024, t2_1024;
#
# BUG##836491: Crash in Item_field::Item_field from add_ref_to_table_cond() with semijoin+materialization
#
CREATE TABLE t1 (c int, d varchar(1), KEY(d)) ;
INSERT INTO t1 VALUES (2,'x'),(2,'x'),(2,'j'),(2,'c');
CREATE TABLE t2 (a int, d varchar(1)) ;
INSERT INTO t2 VALUES (1,'x');
CREATE TABLE t3 (d varchar(1)) ;
INSERT INTO t3 VALUES ('x'),('x'),('j'),('c');
SELECT t2.a, t1.c
FROM t1, t2
WHERE t2.d IN ( SELECT d FROM t3 )
AND t1.d = t2.d
GROUP BY 1 , 2;
a c
1 2
drop table t1,t2,t3;
set optimizer_switch=@subselect_sj_mat_tmp;
set @subselect_mat_test_optimizer_switch_value=null;
set @@optimizer_switch='materialization=on,in_to_exists=off,semijoin=off';

View File

@@ -1729,4 +1729,24 @@ c1 c2
2 7
5 6
DROP TABLE t1, t2, t3;
#
# BUG#834534: Assertion `0' failed in replace_where_subcondition with semijoin subquery in HAVING
#
CREATE TABLE t1 ( d int );
INSERT INTO t1 VALUES (2),(2),(0),(2),(2);
CREATE TABLE t2 ( b int );
INSERT INTO t2 VALUES (4),(3),(3);
CREATE TABLE t3 ( a int );
SELECT *
FROM t3
WHERE (t3.a) IN (
SELECT t1.d
FROM t1
HAVING ( 4 ) IN (
SELECT t2.b
FROM t2
)
);
a
drop table t1, t2,t3;
set optimizer_switch=@subselect_sj_tmp;

View File

@@ -1740,6 +1740,26 @@ c1 c2
2 7
5 6
DROP TABLE t1, t2, t3;
#
# BUG#834534: Assertion `0' failed in replace_where_subcondition with semijoin subquery in HAVING
#
CREATE TABLE t1 ( d int );
INSERT INTO t1 VALUES (2),(2),(0),(2),(2);
CREATE TABLE t2 ( b int );
INSERT INTO t2 VALUES (4),(3),(3);
CREATE TABLE t3 ( a int );
SELECT *
FROM t3
WHERE (t3.a) IN (
SELECT t1.d
FROM t1
HAVING ( 4 ) IN (
SELECT t2.b
FROM t2
)
);
a
drop table t1, t2,t3;
set optimizer_switch=@subselect_sj_tmp;
#
# BUG#49129: Wrong result with IN-subquery with join_cache_level=6 and firstmatch=off

View File

@@ -1600,4 +1600,21 @@ select left(a1,7), left(a2,7) from t1_1024 where (a1,3) in (select substring(b1,
left(a1,7) left(a2,7)
1 - 01x 2 - 01x
drop table t1_1024, t2_1024;
#
# BUG##836491: Crash in Item_field::Item_field from add_ref_to_table_cond() with semijoin+materialization
#
CREATE TABLE t1 (c int, d varchar(1), KEY(d)) ;
INSERT INTO t1 VALUES (2,'x'),(2,'x'),(2,'j'),(2,'c');
CREATE TABLE t2 (a int, d varchar(1)) ;
INSERT INTO t2 VALUES (1,'x');
CREATE TABLE t3 (d varchar(1)) ;
INSERT INTO t3 VALUES ('x'),('x'),('j'),('c');
SELECT t2.a, t1.c
FROM t1, t2
WHERE t2.d IN ( SELECT d FROM t3 )
AND t1.d = t2.d
GROUP BY 1 , 2;
a c
1 2
drop table t1,t2,t3;
set optimizer_switch=@subselect_sj_mat_tmp;

View File

@@ -1571,5 +1571,28 @@ SELECT * FROM t1 WHERE c1 IN ( SELECT t3.c1 FROM t3 LEFT JOIN t2 ON t2 .c1 = t3
DROP TABLE t1, t2, t3;
--echo #
--echo # BUG#834534: Assertion `0' failed in replace_where_subcondition with semijoin subquery in HAVING
--echo #
CREATE TABLE t1 ( d int );
INSERT INTO t1 VALUES (2),(2),(0),(2),(2);
CREATE TABLE t2 ( b int );
INSERT INTO t2 VALUES (4),(3),(3);
CREATE TABLE t3 ( a int );
SELECT *
FROM t3
WHERE (t3.a) IN (
SELECT t1.d
FROM t1
HAVING ( 4 ) IN (
SELECT t2.b
FROM t2
)
);
drop table t1, t2,t3;
# The following command must be the last one the file
set optimizer_switch=@subselect_sj_tmp;

View File

@@ -1242,5 +1242,26 @@ select left(a1,7), left(a2,7) from t1_1024 where (a1,3) in (select substring(b1,
drop table t1_1024, t2_1024;
--echo #
--echo # BUG##836491: Crash in Item_field::Item_field from add_ref_to_table_cond() with semijoin+materialization
--echo #
CREATE TABLE t1 (c int, d varchar(1), KEY(d)) ;
INSERT INTO t1 VALUES (2,'x'),(2,'x'),(2,'j'),(2,'c');
CREATE TABLE t2 (a int, d varchar(1)) ;
INSERT INTO t2 VALUES (1,'x');
CREATE TABLE t3 (d varchar(1)) ;
INSERT INTO t3 VALUES ('x'),('x'),('j'),('c');
SELECT t2.a, t1.c
FROM t1, t2
WHERE t2.d IN ( SELECT d FROM t3 )
AND t1.d = t2.d
GROUP BY 1 , 2;
drop table t1,t2,t3;
set optimizer_switch=@subselect_sj_mat_tmp;