| Bug #6303 | DISTINCT + subquery crashes Server | ||
|---|---|---|---|
| Submitted: | 28 Oct 2004 12:50 | Modified: | 1 Nov 2004 8:33 |
| Reporter: | Georg Richter | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | 5.0.2 | OS: | Any (All) |
| Assigned to: | Timour Katchaounov | CPU Architecture: | Any |
[28 Oct 2004 13:04]
MySQL Verification Team
Back trace:
(gdb) bt
#0 0xb7cefa21 in kill () from /lib/libc.so.6
#1 0xb7e4a051 in pthread_kill () from /lib/libpthread.so.0
#2 0xb7e4a42b in raise () from /lib/libpthread.so.0
#3 0xb7cef7b4 in raise () from /lib/libc.so.6
#4 0xb7cf0c7d in abort () from /lib/libc.so.6
#5 0xb7ce8def in __assert_fail () from /lib/libc.so.6
#6 0x081f2214 in check_group_min_max_predicates (cond=0x87b6250, min_max_arg_item=0x0, image_type=itRAW)
at opt_range.cc:6941
#7 0x081f1f00 in get_best_group_min_max (param=0xbe5fdeb4, tree=0x0) at opt_range.cc:6867
#8 0x081e7fdb in SQL_SELECT::test_quick_select (this=0x87b7450, thd=0x87a8be0, keys_to_use={map = 1}, prev_tables=0,
limit=4294967295, force_quick_range=false) at opt_range.cc:1720
#9 0x081a4b74 in get_quick_record_count (thd=0x87a8be0, select=0x87b7450, table=0x87a3588, keys=0x87b725c, limit=4294967295)
at sql_select.cc:2076
#10 0x081a58f3 in make_join_statistics (join=0x87b6320, tables=0x87b5a48, conds=0x87b6250, keyuse_array=0x87b7030)
at sql_select.cc:2384
#11 0x081a1378 in JOIN::optimize (this=0x87b6320) at sql_select.cc:627
#12 0x081a49f4 in mysql_select (thd=0x87a8be0, rref_pointer_array=0x87a8ef0, tables=0x87b5a48, wild_num=0,
fields=@0x87a8e3c, conds=0x87b6250, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=8669697,
result=0x87b6310, unit=0x87a8c24, select_lex=0x87a8dd0) at sql_select.cc:2015
#13 0x081a05ea in handle_select (thd=0x87a8be0, lex=0x87a8c18, result=0x87b6310) at sql_select.cc:229
#14 0x08175e2d in mysql_execute_command (thd=0x87a8be0) at sql_parse.cc:2069
#15 0x0817bc09 in mysql_parse (thd=0x87a8be0,
inBuf=0x87b58d8 "SELECT DISTINCT T_00.VEPNAME FROM VEPSTRUTYPE T_00 WHERE \nEXISTS ( SELECT * FROM VEPTYPE WHERE VEPNAME = T_00.VEPNAME )", length=121) at sql_parse.cc:4626
#16 0x08174b02 in dispatch_command (command=COM_QUERY, thd=0x87a8be0,
packet=0x87a04f9 "SELECT DISTINCT T_00.VEPNAME FROM VEPSTRUTYPE T_00 WHERE \nEXISTS ( SELECT * FROM VEPTYPE WHERE VEPNAME = T_00.VEPNAME )", packet_length=122) at sql_parse.cc:1518
#17 0x081743e7 in do_command (thd=0x87a8be0) at sql_parse.cc:1298
#18 0x0817394c in handle_one_connection (arg=0x87a8be0) at sql_parse.cc:1034
#19 0xb7e4714b in pthread_start_thread () from /lib/libpthread.so.0
#20 0xb7e471df in pthread_start_thread_event () from /lib/libpthread.so.0
#21 0xb7d7a50a in clone () from /lib/libc.so.6

Description: using DISTINCT with subquery in WHERE clause crashes server. Query works fine without DISTINCT. This crash occurs only in 5.0.2, not in 4.1.7 How to repeat: 5.0.2-alpha-debug-log [14:44] root@MY1> SHOW CREATE TABLE VEPSTRUTYPE \G *************************** 1. row *************************** Table: VEPSTRUTYPE Create Table: CREATE TABLE `VEPSTRUTYPE` ( `VEPNAME` varchar(30) character set latin1 collate latin1_bin NOT NULL default '', `VERSION` char(1) character set latin1 collate latin1_bin NOT NULL default '', `TYPENAME` varchar(62) character set latin1 collate latin1_bin NOT NULL default '', `FIELDPOS` int(11) NOT NULL default '0', `FIELDNAME` varchar(30) character set latin1 collate latin1_bin NOT NULL default '', `TYPEREF` varchar(62) character set latin1 collate latin1_bin NOT NULL default '', PRIMARY KEY (`VEPNAME`,`VERSION`,`TYPENAME`,`FIELDPOS`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.01 sec) 5.0.2-alpha-debug-log [14:45] root@MY1> SHOW CREATE TABLE VEPTYPE \G *************************** 1. row *************************** Table: VEPTYPE Create Table: CREATE TABLE `VEPTYPE` ( `VEPNAME` varchar(30) character set latin1 collate latin1_bin NOT NULL default '', `VERSION` char(1) character set latin1 collate latin1_bin NOT NULL default '', `TYPENAME` varchar(62) character set latin1 collate latin1_bin NOT NULL default '', `ORGINAL` varchar(62) character set latin1 collate latin1_bin NOT NULL default '', `TYPE` char(1) character set latin1 collate latin1_bin NOT NULL default '', PRIMARY KEY (`VEPNAME`,`VERSION`,`TYPENAME`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec) 5.0.2-alpha-debug-log [14:45] root@MY1> SELECT DISTINCT T_00.VEPNAME FROM VEPSTRUTYPE T_00 WHERE EXISTS ( SELECT * FROM VEPTYPE WHERE VEPNAME = T_00.VEPNAME ); ERROR 2013 (HY000): Lost connection to MySQL server during query 5.0.2-alpha-debug-log [14:45] root@MY1> Number of processes running now: 0 041028 14:45:28 mysqld restarted