1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

BUG#878753: Assertion '0' failed in replace_where_subcondition with derived_merge

- Remove the assert in replace_where_subcondition (the patch has explanation why)
This commit is contained in:
Sergey Petrunya
2011-11-02 22:05:08 +04:00
parent 600a03bf53
commit 9b761df393
4 changed files with 82 additions and 4 deletions

View File

@ -1994,4 +1994,28 @@ a
20
DROP TABLE t1,t2,t3;
set optimizer_switch=@tmp_877288;
#
# BUG#878753: Assertion '0' failed in replace_where_subcondition with derived_merge
#
set @tmp878753= @@optimizer_switch;
set optimizer_switch= 'semijoin=on,derived_merge=on';
CREATE TABLE t1 (b int(11)) ;
CREATE TABLE t2 (c int, b int, d varchar(52) NOT NULL) ;
CREATE TABLE t3 (b int(11)) ;
PREPARE st1 FROM '
SELECT * FROM t1
JOIN (
SELECT t2.* FROM t2
WHERE t2.d <> "a"
AND t2.c IN (
SELECT t3.b
FROM t3
)
) AS alias2
ON ( alias2.b = t1.b );
';
EXECUTE st1;
b c b d
DROP TABLE t1,t2,t3;
set optimizer_switch=@tmp878753;
set optimizer_switch=@subselect_sj_tmp;

View File

@ -2005,6 +2005,30 @@ a
20
DROP TABLE t1,t2,t3;
set optimizer_switch=@tmp_877288;
#
# BUG#878753: Assertion '0' failed in replace_where_subcondition with derived_merge
#
set @tmp878753= @@optimizer_switch;
set optimizer_switch= 'semijoin=on,derived_merge=on';
CREATE TABLE t1 (b int(11)) ;
CREATE TABLE t2 (c int, b int, d varchar(52) NOT NULL) ;
CREATE TABLE t3 (b int(11)) ;
PREPARE st1 FROM '
SELECT * FROM t1
JOIN (
SELECT t2.* FROM t2
WHERE t2.d <> "a"
AND t2.c IN (
SELECT t3.b
FROM t3
)
) AS alias2
ON ( alias2.b = t1.b );
';
EXECUTE st1;
b c b d
DROP TABLE t1,t2,t3;
set optimizer_switch=@tmp878753;
set optimizer_switch=@subselect_sj_tmp;
#
# BUG#49129: Wrong result with IN-subquery with join_cache_level=6 and firstmatch=off

View File

@ -1827,5 +1827,30 @@ SELECT * FROM t1 WHERE (a) IN (SELECT a FROM t2 JOIN t3 ON b = a);
DROP TABLE t1,t2,t3;
set optimizer_switch=@tmp_877288;
--echo #
--echo # BUG#878753: Assertion '0' failed in replace_where_subcondition with derived_merge
--echo #
set @tmp878753= @@optimizer_switch;
set optimizer_switch= 'semijoin=on,derived_merge=on';
CREATE TABLE t1 (b int(11)) ;
CREATE TABLE t2 (c int, b int, d varchar(52) NOT NULL) ;
CREATE TABLE t3 (b int(11)) ;
PREPARE st1 FROM '
SELECT * FROM t1
JOIN (
SELECT t2.* FROM t2
WHERE t2.d <> "a"
AND t2.c IN (
SELECT t3.b
FROM t3
)
) AS alias2
ON ( alias2.b = t1.b );
';
EXECUTE st1;
DROP TABLE t1,t2,t3;
set optimizer_switch=@tmp878753;
# The following command must be the last one the file
set optimizer_switch=@subselect_sj_tmp;