mirror of
https://github.com/MariaDB/server.git
synced 2026-05-10 09:04:29 +02:00
Fixed bug mdev-12099.
The function mysql_derived_merge() erroneously did not mark newly formed AND formulas in ON conditions with the flag abort_on_null. As a result not_null_tables() calculated incorrectly for these conditions. This could prevent conversion of embedded outer joins into inner joins. Changed a test case from table_elim.test to preserve the former execution plan.
This commit is contained in:
parent
199f88cb9c
commit
5a0fff50f8
5 changed files with 151 additions and 4 deletions
|
|
@ -597,7 +597,8 @@ CREATE TABLE t1 (a int(11), b varchar(1)) ;
|
|||
INSERT IGNORE INTO t1 VALUES (0,'g');
|
||||
CREATE TABLE t3 ( a varchar(1)) ;
|
||||
INSERT IGNORE INTO t3 VALUES ('g');
|
||||
CREATE TABLE t2 ( a int(11) NOT NULL, PRIMARY KEY (a)) ;
|
||||
CREATE TABLE t2 ( a int(11) NOT NULL, PRIMARY KEY (a));
|
||||
INSERT INTO t2 VALUES (9), (10);
|
||||
create view v1 as SELECT t1.* FROM t1 LEFT JOIN t2 ON ( t1.a = t2.a ) WHERE t2.a <> 0;
|
||||
SELECT alias1.* FROM t3 LEFT JOIN v1 as alias1 ON ( t3.a = alias1.b );
|
||||
a b
|
||||
|
|
@ -606,7 +607,7 @@ EXPLAIN SELECT alias1.* FROM t3 LEFT JOIN v1 as alias1 ON ( t3.a = alias1.b );
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 system NULL NULL NULL NULL 1
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 1 Using where
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using index
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
|
||||
drop view v1;
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue