Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:
Description
The following query:
SELECT `pk`
FROM C
WHERE ( `col_int_key` , `col_int_nokey` ) IN (
SELECT `col_int_key` , `col_int_key`
FROM B ) ;
produces the following assertion in maria-5.3-mwl89. Maria-5.3 is not affected.
mysqld: protocol.cc:507: void net_end_statement(THD*): Assertion `0' failed.
backtrace:
/lib/libc.so.6(__assert_fail+0xf8) [0x133d98]
/home/philips/bzr/maria-5.3-mwl89/sql/mysqld(net_end_statement(THD*)+0x1ec) [0x82742e3]
/home/philips/bzr/maria-5.3-mwl89/sql/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0x19c1) [0x8290870]
/home/philips/bzr/maria-5.3-mwl89/sql/mysqld(do_command(THD*)+0x273) [0x828ec18]
/home/philips/bzr/maria-5.3-mwl89/sql/mysqld(handle_one_connection+0x152) [0x828bd78]
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Re: mysqld: protocol.cc:507: void net_end_statement(THD*): Assertion `0' failed.
Test case:
--disable_abort_on_error
SET SESSION optimizer_switch = 'index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_condition_pushdown=on,firstmatch=on,loosescan=on,materialization=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=off,table_elimination=on';
--enable_abort_on_error
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 `pk`
FROM C
WHERE ( `col_int_key` , `col_int_nokey` ) IN (
SELECT `col_int_key` , `col_int_key`
FROM B ) ;
DROP TABLE C;
DROP TABLE B;