| Bug #446 | insert into an innodb table failed | ||
|---|---|---|---|
| Submitted: | 18 May 2003 7:02 | Modified: | 28 Jun 2003 9:15 |
| Reporter: | [ name withheld ] | ||
| Status: | Closed | ||
| Category: | Server | Severity: | S1 (Critical) |
| Version: | 4.1.0-alpha | OS: | Linux (linux) |
| Assigned to: | Bugs System | Target Version: | |
[18 May 2003 7:02]
[ name withheld ]
[19 May 2003 0:37]
Alexander Keremidarski
Note that Subquery fails with Syntax error:
mysql> (SELECT ID FROM
-> INDIVIDUAL WHERE NAME='anonymous');
ERROR 1054: Unknown column 'NAME' in 'where clause'
With correct syntax Subquery INSERT works.
mysql> INSERT INTO PERSONNEL(INDIVIDUAL_ID, PARENT_ID) VALUES((SELECT ID FROM
-> INDIVIDUAL WHERE USERNAME='anonymous' AND DOMAIN_ID=(SELECT ID FROM DOMAIN WHERE
NAME='__SPECIAL' AND PARENT_ID IS NULL)), 1);
Query OK, 1 row affected (0.05 sec)
With original Subquery MySQL crashes with following backtrace:
(gdb) bt
#0 add_key_field (key_fields=0xbe7feff4, and_level=0, field=0x8b059b8, eq_func=true,
value=0x8b118a0, usable_tables=13726952749189300224) at sql_select.cc:1846
#1 0x081770ca in add_key_fields (stat=0x8b0e188, key_fields=0xbe7feff4,
and_level=0x8b118a0, cond=0x0, usable_tables=18446744073709551615) at item_func.h:117
#2 0x08176eb4 in add_key_fields (stat=0x8b0e188, key_fields=0xbe7feff4,
and_level=0xbe7feff8, cond=0x8b12a40, usable_tables=18446744073709551615) at
sql_select.cc:1898
#3 0x081775d5 in update_ref_and_keys (thd=0x8b07600, keyuse=0x8b0dc18,
join_tab=0x8b0e188, tables=1, cond=0x8b12a40, normal_tables=18446744073709551615,
select_lex=0x2) at sql_select.cc:2134
#4 0x081760a3 in make_join_statistics (join=0x8b0d2f8, tables=0x0, conds=0x8b12a40,
keyuse_array=0x2) at sql_select.cc:1535
#5 0x08172ab8 in JOIN::optimize() (this=0x8b0d2f8) at sql_select.cc:491
#6 0x0811ff09 in subselect_single_select_engine::exec() (this=0x8b12b20) at
item_subselect.cc:814
#7 0x0811d981 in Item_singlerow_subselect::val_int() (this=0x8b12ab8) at
item_subselect.cc:275
#8 0x080de924 in Item::save_in_field(Field*, bool) (this=0x8b12ab8, field=0x8b05e80,
no_conversions=false) at item.cc:999
#9 0x0816de8d in fill_record(List<Item>&, List<Item>&) (fields=@0x2, values=@0x8b07600)
at sql_base.cc:2240
#10 0x081882b7 in mysql_insert(THD*, st_table_list*, List<Item>&, List<List<Item> >&,
List<Item>&, List<Item>&, enum_duplicates) (thd=0x8b064d0, table_list=0x8b12c40,
fields=@0x8b068d4, values_list=@0x8b068ec, update_fields=@0x8b067ac,
update_values=@0x8b068e0, duplic=DUP_ERROR) at sql_insert.cc:261
#11 0x08152639 in mysql_execute_command(THD*) (thd=0x8b064d0) at sql_parse.cc:2287
#12 0x081556c3 in mysql_parse(THD*, char*, unsigned) (thd=0x8b064d0, inBuf=0x8b11320
"INSERT INTO PERSONNEL(INDIVIDUAL_ID, PARENT_ID) VALUES((SELECT ID FROM\nINDIVIDUAL WHERE
NAME='anonymous' AND DOMAIN_ID=(SELECT ID FROM DOMAIN\nWHERE NAME='__SPECIAL' AND
PARENT_ID IS NULL)), 1)", length=145778184) at sql_parse.cc:3380
#13 0x0814f799 in dispatch_command(enum_server_command, THD*, char*, unsigned)
(command=COM_QUERY, thd=0x8b064d0, packet=0x8b07d41 "INSERT INTO PERSONNEL(INDIVIDUAL_ID,
PARENT_ID) VALUES((SELECT ID FROM\nINDIVIDUAL WHERE NAME='anonymous' AND DOMAIN_ID=(SELECT
ID FROM DOMAIN\nWHERE NAME='__SPECIAL' AND PARENT_ID IS NULL)), 1)", packet_length=193) at
sql_parse.cc:1249
#14 0x0814f016 in do_command(THD*) (thd=0x8b064d0) at sql_parse.cc:1049
#15 0x0814e53e in handle_one_connection (arg=0x2) at sql_parse.cc:838
#16 0x40042812 in pthread_start_thread_event () from /lib/libpthread.so.0
[20 May 2003 9:12]
Oleksandr Byelkin
ChangeSet 1.1542 03/05/20 17:09:53 bell@sanja.is.com.ua +1 -0
[28 Jun 2003 9:15]
Oleksandr Byelkin
Thank you for bugreport, patch included in bk repository and will be included in next MySQL release.
