Bug #51780 | randgen outer_join.yy causes crash in add_found_match_trig_cond | ||
---|---|---|---|
Submitted: | 5 Mar 2010 20:03 | Modified: | 8 Mar 2010 13:55 |
Reporter: | Sergey Petrunya | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | MySQL Server: Optimizer | Severity: | S3 (Non-critical) |
Version: | 5.1 bzr | OS: | Linux (x86 Ubuntu 9.04) |
Assigned to: | Assigned Account | CPU Architecture: | Any |
[5 Mar 2010 20:03]
Sergey Petrunya
[6 Mar 2010 9:32]
Sveta Smirnova
Thank you for the report. Verified as described.
[8 Mar 2010 13:41]
Philip Stoev
Patrick, can you please derive a simplified MTR test case out of this crash. Thanks!
[8 Mar 2010 13:55]
Patrick Crews
This is a duplicate of http://bugs.mysql.com/bug.php?id=48971, which has unfortunately been marked private. Simplified test case: #/* Server0: MySQL 5.1.41-gcov-debug-log */ #/*!50400 SET SESSION optimizer_switch = 'index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on' */; #/*!50400 SET SESSION optimizer_use_mrr = '' */; #/*!50400 SET SESSION engine_condition_pushdown = 'ON' */; #/*!50400 SET SESSION join_cache_level = '' */; #/*!50400 SET SESSION debug = '' */; #/* Begin test case for query 0 */ --disable_warnings DROP TABLE /*! IF EXISTS */ A; DROP TABLE /*! IF EXISTS */ C; DROP TABLE /*! IF EXISTS */ BB; DROP TABLE /*! IF EXISTS */ B; --enable_warnings CREATE TABLE `A` ( `pk` int(11) NOT NULL AUTO_INCREMENT, `int_key` int(11) DEFAULT NULL, PRIMARY KEY (`pk`), KEY `int_key` (`int_key`), KEY `varchar_key` (`int_key`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE `C` ( `pk` int(11) NOT NULL AUTO_INCREMENT, `int_key` int(11) DEFAULT NULL, PRIMARY KEY (`pk`), KEY `int_key` (`int_key`), KEY `varchar_key` (`int_key`) ) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1; INSERT INTO `C` VALUES (1,2); INSERT INTO `C` VALUES (2,9); INSERT INTO `C` VALUES (3,3); INSERT INTO `C` VALUES (4,9); INSERT INTO `C` VALUES (5,NULL); INSERT INTO `C` VALUES (6,9); INSERT INTO `C` VALUES (7,3); INSERT INTO `C` VALUES (8,8); INSERT INTO `C` VALUES (9,8); INSERT INTO `C` VALUES (10,53); INSERT INTO `C` VALUES (11,0); INSERT INTO `C` VALUES (12,5); INSERT INTO `C` VALUES (13,166); INSERT INTO `C` VALUES (14,3); INSERT INTO `C` VALUES (15,0); INSERT INTO `C` VALUES (16,1); INSERT INTO `C` VALUES (17,9); INSERT INTO `C` VALUES (18,5); INSERT INTO `C` VALUES (19,6); INSERT INTO `C` VALUES (20,2); CREATE TABLE `BB` ( `pk` int(11) NOT NULL AUTO_INCREMENT, `int_key` int(11) DEFAULT NULL, PRIMARY KEY (`pk`), KEY `int_key` (`int_key`), KEY `varchar_key` (`int_key`) ) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=latin1; INSERT INTO `BB` VALUES (10,8); CREATE TABLE `B` ( `pk` int(11) NOT NULL AUTO_INCREMENT, `int_key` int(11) DEFAULT NULL, PRIMARY KEY (`pk`), KEY `int_key` (`int_key`), KEY `varchar_key` (`int_key`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; INSERT INTO `B` VALUES (1,7); SELECT table1 .`int_key` FROM BB table1 LEFT JOIN BB table2 LEFT JOIN B table4 JOIN C table5 ON table5 .`pk` ON table4 .`pk` LEFT JOIN A JOIN BB table8 ON table8 .`pk` RIGHT JOIN BB table9 JOIN C table10 ON table10 .`int_key` ON table9 .`pk` ON table5 .`int_key` = table9 .`pk` RIGHT JOIN BB table11 LEFT JOIN C table12 JOIN BB table14 ON table12 .`pk` = table14 .`int_key` ON table11 .`int_key` = table12 .`pk` ON table5 .`int_key` = table14 .`int_key` ON table2 .`pk` WHERE table1 .`pk` HAVING 55 ; DROP TABLE A; DROP TABLE C; DROP TABLE BB; DROP TABLE B; #/* End of test case for query 0 */