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:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.0.2 OS:Any (All)
Assigned to: Timour Katchaounov CPU Architecture:Any

[28 Oct 2004 12:50] Georg Richter
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
[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