mirror of
https://github.com/MariaDB/server.git
synced 2025-09-11 05:52:26 +03:00
Fixed a cost estimation bug introduced into in the function best_access_path
of the 5.3 code line after a merge with 5.2 on 2010-10-28 in order not to allow the cost to access a joined table to be equal to 0 ever. Expanded data sets for many test cases to get the same execution plans as before.
This commit is contained in:
@@ -64,6 +64,12 @@ KEY c3 (c3,c2));
|
||||
INSERT INTO t1 VALUES (10,7,8,'v','v');
|
||||
INSERT INTO t1 VALUES (11,1,9,'r','r');
|
||||
INSERT INTO t1 VALUES (12,5,9,'a','a');
|
||||
INSERT INTO t1 VALUES (13,7,18,'v','v');
|
||||
INSERT INTO t1 VALUES (14,1,19,'r','r');
|
||||
INSERT INTO t1 VALUES (15,5,29,'a','a');
|
||||
INSERT INTO t1 VALUES (17,7,38,'v','v');
|
||||
INSERT INTO t1 VALUES (18,1,39,'r','r');
|
||||
INSERT INTO t1 VALUES (19,5,49,'a','a');
|
||||
create table t1a like t1;
|
||||
insert into t1a select * from t1;
|
||||
create table t1b like t1;
|
||||
@@ -88,13 +94,13 @@ FROM (t1b JOIN t2 ON t2.c3 = t1b.c4) LEFT JOIN
|
||||
t1a ON (t1a.c2 = t1b.pk AND 2)
|
||||
WHERE t1.pk) ;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t2 index c3 c3 9 NULL 2 100.00 Using index
|
||||
2 DEPENDENT SUBQUERY t1b ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
2 DEPENDENT SUBQUERY t1a ref c2 c2 5 test.t1b.pk 2 100.00 Using where
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 9 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t1b ALL NULL NULL NULL NULL 9 100.00
|
||||
2 DEPENDENT SUBQUERY t1a ref c2 c2 5 test.t1b.pk 1 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t2 index c3 c3 9 NULL 2 100.00 Using where; Using index; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t1.pk' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` where <in_optimizer>(`test`.`t1`.`c1`,<exists>(select `test`.`t1a`.`c1` from `test`.`t1b` join `test`.`t2` left join `test`.`t1a` on((2 and (`test`.`t1a`.`c2` = `test`.`t1b`.`pk`))) where ((`test`.`t1`.`pk` <> 0) and (<cache>(`test`.`t1`.`c1`) = `test`.`t1a`.`c1`) and (`test`.`t1b`.`c4` = `test`.`t2`.`c3`))))
|
||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` where <in_optimizer>(`test`.`t1`.`c1`,<exists>(select `test`.`t1a`.`c1` from `test`.`t1b` join `test`.`t2` left join `test`.`t1a` on((2 and (`test`.`t1a`.`c2` = `test`.`t1b`.`pk`))) where ((`test`.`t1`.`pk` <> 0) and (<cache>(`test`.`t1`.`c1`) = `test`.`t1a`.`c1`) and (`test`.`t2`.`c3` = `test`.`t1b`.`c4`))))
|
||||
SELECT pk
|
||||
FROM t1
|
||||
WHERE c1 IN
|
||||
|
Reference in New Issue
Block a user