/* Server0: MySQL 6.0.14-alpha-debug-log */ --disable_abort_on_error SET SESSION optimizer_switch = 'index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,firstmatch=on,loosescan=on,materialization=on,semijoin=off,mrr=on,mrr_cost_based=off,index_condition_pushdown=on'; SET SESSION optimizer_join_cache_level = 8; SET SESSION debug = ''; --enable_abort_on_error /* Begin test case for query 0 */ --disable_warnings DROP TABLE /*! IF EXISTS */ C; --enable_warnings CREATE TABLE `C` ( `pk` int(11) NOT NULL AUTO_INCREMENT, `col_int_key` int(11) DEFAULT NULL, `col_varchar_key` 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=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1; INSERT INTO `C` VALUES (1,2,'w'); INSERT INTO `C` VALUES (2,9,'m'); INSERT INTO `C` VALUES (3,3,'m'); INSERT INTO `C` VALUES (4,9,'k'); INSERT INTO `C` VALUES (5,NULL,'r'); INSERT INTO `C` VALUES (6,9,'t'); INSERT INTO `C` VALUES (7,3,'j'); INSERT INTO `C` VALUES (8,8,'u'); INSERT INTO `C` VALUES (9,8,'h'); INSERT INTO `C` VALUES (10,53,'o'); INSERT INTO `C` VALUES (11,0,NULL); INSERT INTO `C` VALUES (12,5,'k'); INSERT INTO `C` VALUES (13,166,'e'); INSERT INTO `C` VALUES (14,3,'n'); INSERT INTO `C` VALUES (15,0,'t'); INSERT INTO `C` VALUES (16,1,'c'); INSERT INTO `C` VALUES (17,9,'m'); INSERT INTO `C` VALUES (18,5,'y'); INSERT INTO `C` VALUES (19,6,'f'); INSERT INTO `C` VALUES (20,2,'d'); SELECT table1 .`col_int_key` FROM C table1 LEFT JOIN view_D table2 ON table1 .`col_int_key` = table2 .`col_int_key` WHERE table2 .`pk` <= 3 ; /* Query plan Server 0: # |1|SIMPLE|D|range|PRIMARY,col_int_key|PRIMARY|4||4|Using index condition; Using where; Using MRR| # |1|SIMPLE|table1|ref|col_int_key|col_int_key|5|test.D.col_int_key|2|Using index| # */ DROP TABLE C; /* End of test case for query 0 */ /* Begin test case for query 1 */ --disable_warnings DROP TABLE /*! IF EXISTS */ C; --enable_warnings CREATE TABLE `C` ( `pk` int(11) NOT NULL AUTO_INCREMENT, `col_int_key` int(11) DEFAULT NULL, `col_varchar_key` 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=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1; INSERT INTO `C` VALUES (1,2,'w'); INSERT INTO `C` VALUES (2,9,'m'); INSERT INTO `C` VALUES (3,3,'m'); INSERT INTO `C` VALUES (4,9,'k'); INSERT INTO `C` VALUES (5,NULL,'r'); INSERT INTO `C` VALUES (6,9,'t'); INSERT INTO `C` VALUES (7,3,'j'); INSERT INTO `C` VALUES (8,8,'u'); INSERT INTO `C` VALUES (9,8,'h'); INSERT INTO `C` VALUES (10,53,'o'); INSERT INTO `C` VALUES (11,0,NULL); INSERT INTO `C` VALUES (12,5,'k'); INSERT INTO `C` VALUES (13,166,'e'); INSERT INTO `C` VALUES (14,3,'n'); INSERT INTO `C` VALUES (15,0,'t'); INSERT INTO `C` VALUES (16,1,'c'); INSERT INTO `C` VALUES (17,9,'m'); INSERT INTO `C` VALUES (18,5,'y'); INSERT INTO `C` VALUES (19,6,'f'); INSERT INTO `C` VALUES (20,2,'d'); SELECT STRAIGHT_JOIN table1 .`col_int_key` FROM C table1 LEFT JOIN view_D table2 ON table1 .`col_int_key` = table2 .`col_int_key` WHERE table2 .`pk` <= 3 /* TRANSFORM_OUTCOME_UNORDERED_MATCH */; /* Query plan Server 0: # |1|SIMPLE|table1|index|col_int_key|col_int_key|5||20|Using index| # |1|SIMPLE|D|ref|PRIMARY,col_int_key|col_int_key|5|test.table1.col_int_key|3|Using where; Using join buffer| # */ DROP TABLE C; /* End of test case for query 1 */