Bug #3386 A subquery causes crash if used on an innodb type table more then 1 row
Submitted: 4 Apr 2004 6:19 Modified: 4 Apr 2004 23:59
Reporter: [ name withheld ] Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S1 (Critical)
Version:5.0.0 OS:Windows (Windows)
Assigned to: Heikki Tuuri CPU Architecture:Any

[4 Apr 2004 6:19] [ name withheld ]
Description:
A subquery causes crash if used on an innodb type table more then 1 row.

I am just downloaded 5.0.0 alpha version (and 4.1 alpha also), unzipped, and started mysqld-nt.exe. I used Powerdesigner 9.5.2 to generate my simple database model. This tool by default automatically add "TYPE = INNODB" to create table statements. I was migrated some MSSQL script and encountered a server crash.

Because the same query works if I insert only 1 row into the table, or create the table without innodb type, I think any other settings must be right.

I checked this on 2 machines: Windows 2000 Prof and Windows XP prof, both hungarian version.

P.s: sorry about my english...

How to repeat:
/*************************************************************************
 * Create a table without innodb type
 * Insert at least 2 rows
 * Use a subquery: it works	
 *************************************************************************
 */

drop table if exists test1;

create table test1 (test int);

insert into test1 (test) values (1);
insert into test1 (test) values (2);

select (select test from test1 where test=1) test from test1;

/*************************************************************************
 * Create a table with innodb type
 * Insert only 1 row
 * Use a subquery: it works	
 *************************************************************************
 */

drop table if exists test2;

create table test2 (test int) type = INNODB;

insert into test2 (test) values (1);

select (select test from test2 where test=1) test from test2;

/*************************************************************************
 * Create a table with innodb type
 * Insert at least 2 rows
 * Use a subquery: it do not works, crash the server	
 *************************************************************************
 */

drop table if exists test3;

create table test3 (test int) type = INNODB;

insert into test3 (test) values (1);
insert into test3 (test) values (2);

select (select test from test3 where test=1) test from test3;
[4 Apr 2004 8:16] [ name withheld ]
It is possible that this is a duplicate of bug 3375.
[4 Apr 2004 14:41] MySQL Verification Team
I tested against a server 5.0.1 built from BK source 1 day older
and the crash not happens anymore. Thank you for the bug report.