mariadb/sql
davi@moksha.local 91e1cc2195 Bug#25164 create table a as select * from A hangs
The problem from a user's perspective: user creates table A, and then tries
to CREATE TABLE a SELECT from A - and this causes a deadlock error, a hang,
or fails with a debug assert, but only if the storage engine is InnoDB.

The origin of the problem: InnoDB uses case-insensitive collation
(system_charset_info) when looking up the internal table share, thus returning
the same share for 'a' and 'A'.

Cause of the user-visible behavior: since the same share is returned to SQL
locking subsystem, it assumes that the same table is first locked (within the
same session) for WRITE, and then for READ, and returns a deadlock error.
However, the code is wrong in not properly cleaning up upon an error, leaving
external locks in place, which leads to assertion failures and hangs.

Fix that has been implemented: the SQL layer should properly propagate the
deadlock error, cleaning up and freeing all resources.

Further work towards a more complete solution: InnoDB should not use case
insensitive collation for table share hash if table names on disk honor the case.
2007-08-27 10:13:54 -03:00
..
examples Bug#28862 Extended Latin1 characters get lost in CVS engine 2007-06-15 11:19:35 +05:00
share Merge ramayana.hindu.god:/home/tsmith/m/bk/50 2007-08-15 15:48:03 -06:00
.cvsignore
add_errmsg
client_settings.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
CMakeLists.txt CMakeLists.txt, README, configure.js 2007-08-03 21:51:37 +02:00
custom_conf.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
derror.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
des_key_file.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
discover.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
field.cc Bug #29536: timestamp inconsistent in replication around 1970 2007-08-06 04:57:28 -07:00
field.h Fixed compiler error for Windows in the patch for bug 30219. 2007-08-05 17:12:57 -07:00
field_conv.cc field_conv.cc: 2007-07-12 00:55:40 +05:00
filesort.cc Bug#15130: CREATE .. SELECT was denied to use advantages of the SQL_BIG_RESULT. 2007-07-24 18:15:44 +04:00
frm_crypt.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
gen_lex_hash.cc gen_lex_hash.cc: 2007-01-31 00:06:42 +01:00
gstream.cc Many files: 2006-12-23 20:17:15 +01:00
gstream.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
ha_archive.cc BUG#29207 - archive table reported as corrupt by check table (P1) 2007-06-27 13:19:34 +05:00
ha_archive.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
ha_berkeley.cc BUG#28591: make the fix work for BDB tables too: 2007-07-26 20:52:53 +04:00
ha_berkeley.h Fixed compiler warnings (for linux and win32 and win64) 2007-02-22 16:59:57 +02:00
ha_blackhole.cc Bug#19717: The blackhole engine is returning an OK flag in 2007-02-14 18:35:59 +02:00
ha_blackhole.h Merge mysql.com:/home/svoj/devel/mysql/BUG27998/mysql-4.1-engines 2007-05-10 18:14:04 +05:00
ha_federated.cc fix pushbuild failures 2007-07-25 17:22:52 -07:00
ha_federated.h Merge ramayana.hindu.god:/home/tsmith/m/bk/50 2007-08-01 18:14:50 -06:00
ha_heap.cc Mark deadcode for gcov 2007-07-18 11:12:15 +04:00
ha_heap.h [pb problem]: ha_heap->clone() fails on windows because of mess with 2007-07-17 19:51:50 +04:00
ha_innodb.cc NULL MERGE this ChangeSet to 5.1 2007-08-15 17:20:54 -06:00
ha_innodb.h Apply innodb-5.0-ss1405 snapshot 2007-04-18 19:36:22 -06:00
ha_myisam.cc Merge gleb.loc:/home/uchum/work/bk/5.0 2007-07-19 19:57:53 +05:00
ha_myisam.h Bug#28249 Query Cache returns wrong result with concurrent insert / certain lock 2007-07-12 13:29:51 +02:00
ha_myisammrg.cc BUG#26976 - Missing table in merge not noted in related error msg + 2007-06-14 16:18:01 +05:00
ha_myisammrg.h BUG#26976 - Missing table in merge not noted in related error msg + 2007-06-06 04:42:41 +05:00
ha_ndbcluster.cc (pushing for Andrei) 2007-07-30 18:27:36 +03:00
ha_ndbcluster.h Merge dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-5.0/mysql-5.0-ndb-bj 2007-05-08 10:00:12 +08:00
ha_ndbcluster_cond.cc Back-ported compiler warning fixes from 5.1 to ease merging 2007-04-24 10:25:15 +02:00
ha_ndbcluster_cond.h Bug #29185 Large IN list crashes mysqld with cluster and condition pushdown 2007-06-19 13:56:02 +02:00
handler.cc Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt 2007-07-31 15:23:25 +03:00
handler.h Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-opt 2007-08-01 18:39:13 -06:00
hash_filo.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
hash_filo.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
hostname.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
init.cc Fix for bug #28121 "INSERT or UPDATE into DOUBLE(200,0) field being truncated to 31 digits" 2007-05-28 12:44:59 +04:00
item.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-08-08 11:34:35 +04:00
item.h Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl 2007-08-03 18:59:16 +02:00
item_buff.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
item_cmpfunc.cc item_cmpfunc.cc: 2007-07-16 01:03:58 +04:00
item_cmpfunc.h Bug#30237 (Performance regression in boolean expressions) 2007-08-22 11:05:35 -06:00
item_create.cc Fix for bug #30200: mysqlbinlog.test: connection_id() not restored under ps-protocol 2007-08-02 14:51:03 +05:00
item_create.h Bug #27921 View ignores precision for CAST() 2007-05-10 00:17:21 +05:00
item_func.cc Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl 2007-08-03 18:59:16 +02:00
item_func.h Fixed bug #29338. 2007-07-19 18:39:01 +05:00
item_geofunc.cc Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint 2007-03-05 18:22:35 +04:00
item_geofunc.h Merge mysql.com:/home/ram/work/b26038/b26038.4.1 2007-02-28 12:13:46 +04:00
item_row.cc Many files: 2006-12-23 20:17:15 +01:00
item_row.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
item_strfunc.cc Merge mysql.com:/home/bar/mysql-work/mysql-5.0.b28875 2007-08-03 15:30:31 +05:00
item_strfunc.h Bug #29878 Garbage data generation when executing SESSION_USER() on a slave. 2007-07-27 18:42:25 +05:00
item_subselect.cc Bug#27333: subquery grouped for aggregate of outer 2007-06-29 10:39:17 +03:00
item_subselect.h Fixed bug #27870. The bug that causes crashes manifests itself at some 2007-04-17 17:35:29 -07:00
item_sum.cc Bug#29850: Wrong charset of GROUP_CONCAT result when the select employs 2007-07-19 20:21:23 +04:00
item_sum.h Bug#27333: subquery grouped for aggregate of outer 2007-06-29 10:39:17 +03:00
item_timefunc.cc Merge mysql.com:/home/bar/mysql-work/mysql-5.0.b28875 2007-08-03 15:30:31 +05:00
item_timefunc.h Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
item_uniq.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
item_uniq.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
key.cc Patch to eliminate compilation errors under VC after bug #13191 fix. 2007-04-29 12:56:46 +05:00
lex.h Fix -ansi -pedantic warning (can't cast a pointer to function 2007-03-08 12:04:45 +03:00
lex_symbol.h Fix -ansi -pedantic warning (can't cast a pointer to function 2007-03-08 12:04:45 +03:00
lock.cc Bug#25164 create table a as select * from A hangs 2007-08-27 10:13:54 -03:00
log.cc (pushing for Andrei) 2007-07-30 18:27:36 +03:00
log_event.cc Fix for bug #29928: INSERT ... VALUES(connection_id(), ...) incorrect 2007-08-01 15:27:03 +05:00
log_event.h Bug#22725 Replication outages from ER_SERVER_SHUTDOWN (1053) set in replication events 2007-05-28 22:20:22 +03:00
Makefile.am Bug#29414 HPUX build fails - 'noinst_HEADERS' does not exist 2007-06-28 11:13:18 +02:00
matherr.c my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
message.mc
mf_iocache.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
my_decimal.cc Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
my_decimal.h Merge bk-internal.mysql.com:/data0/bk/mysql-5.0 2007-05-28 00:05:38 +02:00
my_lock.c my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
mysql_priv.h Bug #29474: 21587 Regression Ever increasing open tables/fd when using HANDLER READ + DELETE 2007-08-16 10:56:09 -06:00
mysqld.cc Merge olga.mysql.com:/home/igor/mysql-5.0 2007-08-04 20:53:26 -07:00
mysqld_suffix.h Many files: 2006-12-23 20:17:15 +01:00
net_serv.cc Merge mysql.com:/home/hf/work/29117/my41-29117 2007-06-19 12:31:37 +05:00
nt_servc.cc
nt_servc.h
opt_range.cc A fix and a test case for Bug#24918 drop table and lock / inconsistent 2007-07-27 16:37:29 +04:00
opt_range.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
opt_sum.cc Bug#27573: MIN() on an indexed column which is always NULL sets _other_ results 2007-05-15 15:29:12 +03:00
parse_file.cc Polishing: add comments. 2007-04-06 18:56:39 +04:00
parse_file.h Many files: 2006-12-23 20:17:15 +01:00
password.c Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
procedure.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
procedure.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
protocol.cc Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
protocol.h Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
records.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
repl_failsafe.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-02-21 14:07:08 +02:00
repl_failsafe.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
set_var.cc (pushing for Andrei) 2007-07-30 18:27:36 +03:00
set_var.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-02-21 14:07:08 +02:00
slave.cc Merge polly.local:/home/kaa/src/maint/bug24192/my50-bug24192 2007-07-11 19:29:11 +04:00
slave.h Fix for BUG#24432 2007-02-08 15:53:14 +01:00
sp.cc Allow mysql.proc to have extra (unknown) fields. 2007-07-25 18:38:52 +04:00
sp.h Many files: 2006-12-23 20:17:15 +01:00
sp_cache.cc Many files: 2006-12-23 20:17:15 +01:00
sp_cache.h Many files: 2006-12-23 20:17:15 +01:00
sp_head.cc Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt 2007-07-31 15:23:25 +03:00
sp_head.h A fix and a test case for Bug#26141 mixing table types in trigger 2007-07-12 22:26:41 +04:00
sp_pcontext.cc Bug#26503 (Illegal SQL exception handler code causes the server to crash) 2007-03-14 12:02:32 -06:00
sp_pcontext.h Bug#26503 (Illegal SQL exception handler code causes the server to crash) 2007-03-14 12:02:32 -06:00
sp_rcontext.cc Bug#24989: The DEADLOCK error is improperly handled by InnoDB. 2007-07-30 17:14:34 +04:00
sp_rcontext.h Bug#24989: The DEADLOCK error is improperly handled by InnoDB. 2007-07-30 17:14:34 +04:00
spatial.cc Bug #29166: 2007-07-05 18:24:48 +03:00
spatial.h Bug #24563: MBROverlaps does not seem to function propertly. 2007-03-23 16:28:07 -06:00
sql_acl.cc BUG#29030 (DROP USER command that errors still gets written to binary log 2007-06-20 14:24:31 +02:00
sql_acl.h Bug#20166 mysql-test-run.pl does not test system privilege tables creation 2007-03-16 20:56:16 +01:00
sql_analyse.cc Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint 2007-02-06 17:18:43 +04:00
sql_analyse.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_array.h Many files: 2006-12-23 20:17:15 +01:00
sql_base.cc Merge weblab.(none):/home/marcsql/TREE/mysql-5.0-base 2007-08-20 10:45:16 -06:00
sql_bitmap.h Many files: 2006-12-23 20:17:15 +01:00
sql_cache.cc Bug#30269 Query cache eats memory 2007-08-21 13:43:09 +02:00
sql_cache.h Bug #30269 Query cache eats memory 2007-08-17 16:55:20 +02:00
sql_class.cc Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-opt 2007-08-01 18:39:13 -06:00
sql_class.h Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-opt 2007-08-01 18:39:13 -06:00
sql_client.cc Bug#26664 test suite times out on OS X 64bit 2007-05-24 11:21:27 +02:00
sql_crypt.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_crypt.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_cursor.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_cursor.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_db.cc A fix and a teset case for Bug#28551 The warning 2007-07-05 02:20:32 +04:00
sql_delete.cc (pushing for Andrei) 2007-07-30 18:27:36 +03:00
sql_derived.cc - renaming TMP_TABLE to NON_TRANSACTIONAL_TMP_TABLE because this is 2007-03-22 15:07:32 +01:00
sql_do.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_error.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime 2007-06-20 12:46:15 +04:00
sql_error.h BUG#26976 - Missing table in merge not noted in related error msg + 2007-06-06 04:42:41 +05:00
sql_handler.cc Merge weblab.(none):/home/marcsql/TREE/mysql-5.0-base 2007-08-20 10:45:16 -06:00
sql_help.cc Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving. 2007-02-19 14:39:37 +02:00
sql_insert.cc Merge chilla.local:/home/mydev/mysql-5.0-amain 2007-08-03 06:56:04 +02:00
sql_lex.cc Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl 2007-08-03 18:59:16 +02:00
sql_lex.h Merge mysql.com:/home/bar/mysql-work/mysql-5.0.b28875 2007-08-03 15:30:31 +05:00
sql_list.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_list.h Merge of BUG#26624 and BUG#26625 2007-03-29 10:35:28 +04:00
sql_load.cc (pushing for Andrei) 2007-07-30 18:27:36 +03:00
sql_locale.cc Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl 2007-01-12 12:22:54 +01:00
sql_manager.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_manager.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_map.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_map.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_olap.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_parse.cc Merge olga.mysql.com:/home/igor/mysql-5.0 2007-08-04 20:53:26 -07:00
sql_prepare.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime 2007-07-12 23:22:17 +04:00
sql_rename.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_repl.cc Fix for bug #29420: crash with show and purge binlogs 2007-07-05 13:09:56 +05:00
sql_repl.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_select.cc Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt 2007-07-31 15:24:22 +04:00
sql_select.h Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt 2007-07-31 15:24:22 +04:00
sql_show.cc Bug#30020: Insufficient check led to a wrong info provided by the 2007-07-28 16:02:29 +04:00
sql_sort.h Fixed bug #25798. 2007-07-01 15:33:28 -07:00
sql_state.c Many files: 2006-12-23 20:17:15 +01:00
sql_string.cc Reversing additional change suggested by Serg 2007-08-07 19:25:45 +05:00
sql_string.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
sql_table.cc Merge olga.mysql.com:/home/igor/mysql-5.0 2007-08-04 20:53:26 -07:00
sql_test.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_trigger.cc A fix and a test case for Bug#26141 mixing table types in trigger 2007-07-12 22:26:41 +04:00
sql_trigger.h A fix and a test case for Bug#26141 mixing table types in trigger 2007-07-12 22:26:41 +04:00
sql_udf.cc Merge bk-internal:/home/bk/mysql-5.0-opt 2007-01-03 18:29:39 +02:00
sql_udf.h Remove typedef st_table_list TABLE_LIST and always use name 'TABLE_LIST'. 2007-07-06 16:18:49 +04:00
sql_union.cc Post-merge fixes 2007-07-31 16:15:56 +04:00
sql_update.cc addendum for the fix for bug 27417: 2007-07-31 14:42:56 +03:00
sql_view.cc A fix and a test case for Bug#26141 mixing table types in trigger 2007-07-12 22:26:41 +04:00
sql_view.h Many files: 2006-12-23 20:17:15 +01:00
sql_yacc.yy Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime 2007-08-22 11:06:42 -06:00
stacktrace.c Bug #29543 GCov information not written in case of crash. 2007-07-07 07:46:17 +02:00
stacktrace.h Many files: 2006-12-23 20:17:15 +01:00
strfunc.cc Fixed compiler warnings. 2007-03-22 20:32:07 +02:00
structs.h Bug#28149 overflow in some "SHOW STATUS"-variables 2007-06-09 17:46:09 +05:00
table.cc Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-opt 2007-08-01 18:39:13 -06:00
table.h Bug #29929 LOCK TABLES does not pre-lock tables used in triggers of the locked tables 2007-07-27 16:56:29 +02:00
thr_malloc.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
time.cc Bug #29536: timestamp inconsistent in replication around 1970 2007-08-06 04:57:28 -07:00
tzfile.h Many files: 2006-12-23 20:17:15 +01:00
tztime.cc Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
tztime.h Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
udf_example.c bug#27741: udf test fails on AIX < 5.3 2007-05-31 14:22:21 +02:00
udf_example.def Fixed compiler warnings (for linux and win32 and win64) 2007-02-22 16:59:57 +02:00
uniques.cc Fixed bug #25798. 2007-07-01 15:33:28 -07:00
unireg.cc Bug #29325: 2007-07-11 10:49:54 +03:00
unireg.h Fixed bug #27352. 2007-08-03 01:58:21 +05:00
watchdog_mysqld