mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
This commit is contained in:
@ -3183,7 +3183,7 @@ NULL
|
||||
NULL
|
||||
drop table t1,t2,t3;
|
||||
set @@optimizer_switch= default;
|
||||
# LP BUG#615760 (double transformation)
|
||||
# LP BUG#615760 (part 1: double transformation)
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1),(2);
|
||||
create table t2 (b int);
|
||||
@ -3198,3 +3198,77 @@ Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where <expr_cache><`test`.`t1`.`a`>(<in_optimizer>(`test`.`t1`.`a`,<exists>(select 1 from `test`.`t2` where (<cache>(`test`.`t1`.`a`) = `test`.`t2`.`b`))))
|
||||
drop table t1,t2;
|
||||
set @@optimizer_switch= default;
|
||||
# LP BUG#615760 (part 2: incorrect heap table index flags)
|
||||
SET SESSION optimizer_switch = 'index_merge=off,index_merge_union=off,index_merge_sort_union=off,index_merge_intersection=off,index_condition_pushdown=off,firstmatch=off,loosescan=off,materialization=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=on,table_elimination=off';
|
||||
CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`col_int_nokey` int(11) DEFAULT NULL,
|
||||
`col_int_key` int(11) DEFAULT NULL,
|
||||
`col_varchar_key` varchar(1) DEFAULT NULL,
|
||||
`col_varchar_nokey` varchar(1) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`),
|
||||
KEY `col_int_key` (`col_int_key`),
|
||||
KEY `col_varchar_key` (`col_varchar_key`,`col_int_key`)
|
||||
) ENGINE=MARIA AUTO_INCREMENT=30 DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1;
|
||||
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,3,186,'m','m');
|
||||
INSERT INTO `t1` VALUES (14,6,NULL,'y','y');
|
||||
INSERT INTO `t1` VALUES (15,92,2,'j','j');
|
||||
INSERT INTO `t1` VALUES (16,7,3,'d','d');
|
||||
INSERT INTO `t1` VALUES (17,NULL,0,'z','z');
|
||||
INSERT INTO `t1` VALUES (18,3,133,'e','e');
|
||||
INSERT INTO `t1` VALUES (19,5,1,'h','h');
|
||||
INSERT INTO `t1` VALUES (20,1,8,'b','b');
|
||||
INSERT INTO `t1` VALUES (21,2,5,'s','s');
|
||||
INSERT INTO `t1` VALUES (22,NULL,5,'e','e');
|
||||
INSERT INTO `t1` VALUES (23,1,8,'j','j');
|
||||
INSERT INTO `t1` VALUES (24,0,6,'e','e');
|
||||
INSERT INTO `t1` VALUES (25,210,51,'f','f');
|
||||
INSERT INTO `t1` VALUES (26,8,4,'v','v');
|
||||
INSERT INTO `t1` VALUES (27,7,7,'x','x');
|
||||
INSERT INTO `t1` VALUES (28,5,6,'m','m');
|
||||
INSERT INTO `t1` VALUES (29,NULL,4,'c','c');
|
||||
CREATE TABLE `t2` (
|
||||
`pk` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`col_int_nokey` int(11) DEFAULT NULL,
|
||||
`col_int_key` int(11) DEFAULT NULL,
|
||||
`col_varchar_key` varchar(1) DEFAULT NULL,
|
||||
`col_varchar_nokey` varchar(1) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`),
|
||||
KEY `col_int_key` (`col_int_key`),
|
||||
KEY `col_varchar_key` (`col_varchar_key`,`col_int_key`)
|
||||
) ENGINE=MARIA AUTO_INCREMENT=21 DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1;
|
||||
INSERT INTO `t2` VALUES (1,NULL,2,'w','w');
|
||||
INSERT INTO `t2` VALUES (2,7,9,'m','m');
|
||||
INSERT INTO `t2` VALUES (3,9,3,'m','m');
|
||||
INSERT INTO `t2` VALUES (4,7,9,'k','k');
|
||||
INSERT INTO `t2` VALUES (5,4,NULL,'r','r');
|
||||
INSERT INTO `t2` VALUES (6,2,9,'t','t');
|
||||
INSERT INTO `t2` VALUES (7,6,3,'j','j');
|
||||
INSERT INTO `t2` VALUES (8,8,8,'u','u');
|
||||
INSERT INTO `t2` VALUES (9,NULL,8,'h','h');
|
||||
INSERT INTO `t2` VALUES (10,5,53,'o','o');
|
||||
INSERT INTO `t2` VALUES (11,NULL,0,NULL,NULL);
|
||||
INSERT INTO `t2` VALUES (12,6,5,'k','k');
|
||||
INSERT INTO `t2` VALUES (13,188,166,'e','e');
|
||||
INSERT INTO `t2` VALUES (14,2,3,'n','n');
|
||||
INSERT INTO `t2` VALUES (15,1,0,'t','t');
|
||||
INSERT INTO `t2` VALUES (16,1,1,'c','c');
|
||||
INSERT INTO `t2` VALUES (17,0,9,'m','m');
|
||||
INSERT INTO `t2` VALUES (18,9,5,'y','y');
|
||||
INSERT INTO `t2` VALUES (19,NULL,6,'f','f');
|
||||
INSERT INTO `t2` VALUES (20,4,2,'d','d');
|
||||
SELECT table1 .`col_varchar_nokey`
|
||||
FROM t2 table1 RIGHT JOIN t1 LEFT JOIN (
|
||||
SELECT SUBQUERY1_t2 .*
|
||||
FROM t1 SUBQUERY1_t1 LEFT JOIN t2 SUBQUERY1_t2 ON SUBQUERY1_t2 .`col_int_key` = SUBQUERY1_t1 .`col_int_nokey` ) table3 STRAIGHT_JOIN ( (
|
||||
SELECT *
|
||||
FROM t1 ) table4 JOIN ( t1 table5 JOIN t2 table6 ON table5 .`pk` ) ON table5 .`col_varchar_nokey` ) ON table6 .`pk` = table5 .`col_int_key` ON table5 .`col_varchar_nokey` ON table5 .`col_varchar_key`
|
||||
WHERE table3 .`col_varchar_key` IN (
|
||||
SELECT `col_varchar_key`
|
||||
FROM t2 ) AND table1 .`col_varchar_key` OR table1 .`pk` ;
|
||||
col_varchar_nokey
|
||||
drop table t1,t2;
|
||||
set @@optimizer_switch= default;
|
||||
|
Reference in New Issue
Block a user