Comment 1 for bug 585644

Revision history for this message
Patrick Crews (patrick-crews) wrote :

Test suite test case:
#/* Server0: Drizzle 2010.05.1561 */

--disable_warnings
DROP TABLE IF EXISTS `m`;
CREATE TABLE `m` (
  `col_int` int DEFAULT NULL,
  `pk` int NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`pk`)
) ENGINE=InnoDB;

ALTER TABLE `m` DISABLE KEYS;
INSERT INTO `m` VALUES (1,1),(NULL,2),(NULL,3),(-207224832,4),(714801152,5),(-1265106944,6),(2023948288,7),(865599488,8),(1,9),(-1895301120,10),(3,11),(9,12),(5,13),(NULL,14),(NULL,15),(1,16),(-224657408,17),(2,18),(-1219493888,19),(7,20),(1,21),(NULL,22),(NULL,23);
ALTER TABLE `m` ENABLE KEYS;

DROP TABLE IF EXISTS `o`;
CREATE TABLE `o` (
  `col_int_key` int DEFAULT NULL,
  `pk` int NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`pk`),
  KEY `col_int_key` (`col_int_key`)
) ENGINE=InnoDB;

ALTER TABLE `o` DISABLE KEYS;
INSERT INTO `o` VALUES (4,1),(-867368960,2),(655032320,3),(1,4),(NULL,5),(-118751232,6),(7,7),(1,8),(3,9),(-518324224,10),(7,11),(1129709568,12),(-2081357824,13),(6,14),(NULL,15),(NULL,16),(NULL,17);
ALTER TABLE `o` ENABLE KEYS;

#/* Begin test case for query 0 */

SELECT COUNT(table1 .`pk`)
FROM m table1 RIGHT JOIN o JOIN o table3 ON table3 .`col_int_key` ON table1 .`col_int` = table3 .`col_int_key` ;

#/* Query plan Server 0:
# |1|SIMPLE|o|index||PRIMARY|4||25|Using index|
# |1|SIMPLE|table3|index||PRIMARY|4||25|Using where; Using join buffer|
# |1|SIMPLE|table1|ALL|||||23||
# */

#/* End of test case for query 0 */

#/* Begin test case for query 1 */

SELECT STRAIGHT_JOIN COUNT(table1 .`pk`)
FROM m table1 RIGHT JOIN o JOIN o table3 ON table3 .`col_int_key` ON table1 .`col_int` = table3 .`col_int_key` /* TRANSFORM_OUTCOME_UNORDERED_MATCH */;

#/* Query plan Server 0:
# |1|SIMPLE|table1|ALL|||||23||
# |1|SIMPLE|o|index||PRIMARY|4||25|Using index; Using join buffer|
# |1|SIMPLE|table3|index||PRIMARY|4||25|Using where; Using join buffer|
# */

#/* End of test case for query 1 */

DROP TABLE m;
DROP TABLE o;