Crash in create_ref_for_key() with maria-5.3-mwl89

Bug #652727 reported by Philip Stoev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MariaDB
Fix Released
High
Timour Katchaounov

Bug Description

When executed with semijoin=off, the following query crashes in maria-5.3-mwl89:

SELECT `col_int_key` FROM B
WHERE ( 2 , 6 ) IN ( SELECT SUBQUERY1_t1 .`col_int_nokey` , SUBQUERY1_t1 .`col_int_nokey` FROM C SUBQUERY1_t1 STRAIGHT_JOIN CC SUBQUERY1_t2 ON SUBQUERY1_t2 .`pk` = SUBQUERY1_t1 .`pk` ) ;

backtrace:

#4 <signal handler called>
#5 0x0830e269 in create_ref_for_key (join=0xaeca51d0, j=0xaecab710, org_keyuse=0xaecac484, used_tables=4611686018427387907) at sql_select.cc:6223
#6 0x0830d87b in get_best_combination (join=0xaeca51d0) at sql_select.cc:6083
#7 0x083068e4 in make_join_statistics (join=0xaeca51d0, tables_arg=0xaec5ebc0, conds=0xaecaa760, keyuse_array=0xaeca9f0c) at sql_select.cc:3151
#8 0x082fe797 in JOIN::optimize (this=0xaeca51d0) at sql_select.cc:962
#9 0x081a7131 in st_select_lex::optimize_unflattened_subqueries (this=0xa28beb8) at sql_lex.cc:3107
#10 0x083be01d in JOIN::optimize_unflattened_subqueries (this=0xaeca0358) at opt_subselect.cc:3569
#11 0x082ffb9c in JOIN::optimize (this=0xaeca0358) at sql_select.cc:1312
#12 0x08304283 in mysql_select (thd=0xa28a548, rref_pointer_array=0xa28bfbc, tables=0xaec5e208, wild_num=0, fields=..., conds=0xaec5f518, og_num=0,
    order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147764736, result=0xaec5f6a0, unit=0xa28bc20, select_lex=0xa28beb8)
    at sql_select.cc:2583
#13 0x082fc7e3 in handle_select (thd=0xa28a548, lex=0xa28bbc4, result=0xaec5f6a0, setup_tables_done_option=0) at sql_select.cc:276
#14 0x0829af04 in execute_sqlcom_select (thd=0xa28a548, all_tables=0xaec5e208) at sql_parse.cc:5081
#15 0x082918e4 in mysql_execute_command (thd=0xa28a548) at sql_parse.cc:2265
#16 0x0829d0e5 in mysql_parse (thd=0xa28a548,
    inBuf=0xaec5def8 "SELECT `col_int_key` FROM B WHERE ( 2 , 6 ) IN ( SELECT SUBQUERY1_t1 .`col_int_nokey` , SUBQUERY1_t1 .`col_int_nokey` FROM C SUBQUERY1_t1 STRAIGHT_JOIN CC SUBQUERY1_t2 ON SUBQUERY1_t2 .`pk"..., length=226, found_semicolon=0xaedf8230) at sql_parse.cc:6027
#17 0x0828f316 in dispatch_command (command=COM_QUERY, thd=0xa28a548,
    packet=0xa2a6c19 " SELECT `col_int_key` FROM B WHERE ( 2 , 6 ) IN ( SELECT SUBQUERY1_t1 .`col_int_nokey` , SUBQUERY1_t1 .`col_int_nokey` FROM C SUBQUERY1_t1 STRAIGHT_JOIN CC SUBQUERY1_t2 ON SUBQUERY1_t2 .`p"..., packet_length=230) at sql_parse.cc:1184
#18 0x0828e7bc in do_command (thd=0xa28a548) at sql_parse.cc:890
#19 0x0828b91c in handle_one_connection (arg=0xa28a548) at sql_connect.cc:1153
#20 0x00bea919 in start_thread () from /lib/libpthread.so.0
#21 0x00b2ccbe in clone () from /lib/libc.so.6

bzr version-info:

revision-id: <email address hidden>
date: 2010-09-30 18:32:44 +0300
build-date: 2010-10-01 09:27:26 +0300
revno: 2811
branch-nick: maria-5.3-mwl89

Related branches

Revision history for this message
Philip Stoev (pstoev-askmonty) wrote :

Test case :

SET SESSION optimizer_switch='semijoin=off';

--disable_warnings
DROP TABLE /*! IF EXISTS */ CC;
DROP TABLE /*! IF EXISTS */ C;
DROP TABLE /*! IF EXISTS */ B;
--enable_warnings

CREATE TABLE `CC` (
  `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,
  PRIMARY KEY (`pk`),
  KEY `col_int_key` (`col_int_key`),
  KEY `col_varchar_key` (`col_varchar_key`,`col_int_key`)
) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=latin1;
INSERT INTO `CC` VALUES (10,7,8,'v');
INSERT INTO `CC` VALUES (11,1,9,'r');
INSERT INTO `CC` VALUES (12,5,9,'a');
INSERT INTO `CC` VALUES (13,3,186,'m');
INSERT INTO `CC` VALUES (14,6,NULL,'y');
INSERT INTO `CC` VALUES (15,92,2,'j');
INSERT INTO `CC` VALUES (16,7,3,'d');
INSERT INTO `CC` VALUES (17,NULL,0,'z');
INSERT INTO `CC` VALUES (18,3,133,'e');
INSERT INTO `CC` VALUES (19,5,1,'h');
INSERT INTO `CC` VALUES (20,1,8,'b');
INSERT INTO `CC` VALUES (21,2,5,'s');
INSERT INTO `CC` VALUES (22,NULL,5,'e');
INSERT INTO `CC` VALUES (23,1,8,'j');
INSERT INTO `CC` VALUES (24,0,6,'e');
INSERT INTO `CC` VALUES (25,210,51,'f');
INSERT INTO `CC` VALUES (26,8,4,'v');
INSERT INTO `CC` VALUES (27,7,7,'x');
INSERT INTO `CC` VALUES (28,5,6,'m');
INSERT INTO `CC` VALUES (29,NULL,4,'c');
CREATE TABLE `C` (
  `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,
  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,NULL,2,'w');
INSERT INTO `C` VALUES (2,7,9,'m');
INSERT INTO `C` VALUES (3,9,3,'m');
INSERT INTO `C` VALUES (4,7,9,'k');
INSERT INTO `C` VALUES (5,4,NULL,'r');
INSERT INTO `C` VALUES (6,2,9,'t');
INSERT INTO `C` VALUES (7,6,3,'j');
INSERT INTO `C` VALUES (8,8,8,'u');
INSERT INTO `C` VALUES (9,NULL,8,'h');
INSERT INTO `C` VALUES (10,5,53,'o');
INSERT INTO `C` VALUES (11,NULL,0,NULL);
INSERT INTO `C` VALUES (12,6,5,'k');
INSERT INTO `C` VALUES (13,188,166,'e');
INSERT INTO `C` VALUES (14,2,3,'n');
INSERT INTO `C` VALUES (15,1,0,'t');
INSERT INTO `C` VALUES (16,1,1,'c');
INSERT INTO `C` VALUES (17,0,9,'m');
INSERT INTO `C` VALUES (18,9,5,'y');
INSERT INTO `C` VALUES (19,NULL,6,'f');
INSERT INTO `C` VALUES (20,4,2,'d');
CREATE TABLE `B` (
  `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,
  PRIMARY KEY (`pk`),
  KEY `col_int_key` (`col_int_key`),
  KEY `col_varchar_key` (`col_varchar_key`,`col_int_key`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
INSERT INTO `B` VALUES (1,1,7,'f');

SELECT `col_int_key`
FROM B
WHERE ( 2 , 6 ) IN (
SELECT SUBQUERY1_t1 .`col_int_nokey` , SUBQUERY1_t1 .`col_int_nokey`
FROM C SUBQUERY1_t1 STRAIGHT_JOIN CC SUBQUERY1_t2 ON SUBQUERY1_t2 .`pk` = SUBQUERY1_t1 .`pk` ) ;

Changed in maria:
assignee: nobody → Timour Katchaounov (timour)
milestone: none → 5.3
Changed in maria:
status: New → Confirmed
importance: Undecided → High
Changed in maria:
status: Confirmed → In Progress
Changed in maria:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.