mariadb/storage/myisam
petr/cps@mysql.com/owlet. be2ce2614b Fix Bug #18559 "log tables cannot change engine, and
gets deadlocked when dropping w/ log on"

Log tables rely on concurrent insert machinery to add data.
This means that log tables are always opened and locked by
special (artificial) logger threads. Because of this, the thread
which tries to drop a log table starts to wait for the table
to be unlocked. Which will happen only if the log table is disabled.
Alike situation happens if one tries to alter a log table.
However in addition to the problem above, alter table calls
check_if_locking_is_allowed() routine for the engine. The
routine does not allow alter for the log tables. So, alter
doesn't start waiting forever for logs to be disabled, but 
returns with an error.
Another problem is that not all engines could be used for
the log tables. That's because they need concurrent insert.

In this patch we:
(1) Explicitly disallow to drop/alter a log table if it
    is currently used by the logger.
(2) Update MyISAM to support log tables
(3) Allow to drop log tables/alter log tables if log is
    disabled
At the same time we (4) Disallow to alter log tables to
unsupported engine (after this patch CSV and MyISAM are 
alowed)
Recommit with review fixes.
2006-08-03 21:28:15 +04:00
..
ftbench Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
.cvsignore Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
ChangeLog Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
CMakeLists.txt performing a set of bk mv on each CMakeLists.txt file to try and restore the mixed case filenames since this seems to be required with Cmake 2.4 beta 1. 2006-05-11 11:29:08 -05:00
ft_boolean_search.c Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new 2006-06-04 21:05:22 +03:00
ft_eval.c Added support for key_block_size for key and table level (WL#602) 2006-05-03 15:59:17 +03:00
ft_eval.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
ft_nlq_search.c Now ftparser does not need to bother about memory management - 2006-05-30 18:15:18 +02:00
ft_parser.c Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.1-engines 2006-06-14 15:17:47 +05:00
ft_static.c Incompatible ftparser plugin API change. 2006-05-28 17:02:50 +02:00
ft_stem.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
ft_stopwords.c Rename of my_strdup_with_lenght to match the more common "strndup" method. Soo its now my_strndup(). 2006-01-25 19:54:42 -08:00
ft_test1.c Added support for key_block_size for key and table level (WL#602) 2006-05-03 15:59:17 +03:00
ft_test1.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
ft_update.c Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.1-engines 2006-06-14 15:17:47 +05:00
ftdefs.h Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.1-engines 2006-06-14 15:17:47 +05:00
fulltext.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
make-ccc Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
Makefile.am Rename cmakelists.txt -> CMakeLists.txt 2006-05-12 10:51:07 +02:00
mi_cache.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_changed.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_check.c Merge chilla.local:/home/mydev/mysql-5.0-ateam 2006-07-06 13:18:00 +02:00
mi_checksum.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_close.c WL#2575 - Fulltext: Parser plugin for FTS 2005-12-28 16:05:30 +04:00
mi_create.c Merge chilla.local:/home/mydev/mysql-5.0-ateam 2006-07-06 13:18:00 +02:00
mi_dbug.c Merge 2005-10-06 10:54:07 +02:00
mi_delete.c Merge mysql.com:/home/mydev/mysql-5.0-bug14980 2006-03-10 17:52:28 +01:00
mi_delete_all.c Many files: 2005-12-01 13:34:48 +01:00
mi_delete_table.c Merge chilla.local:/home/mydev/mysql-5.0-ateam 2006-07-06 13:18:00 +02:00
mi_dynrec.c Merge chilla.local:/home/mydev/mysql-5.0-ateam 2006-07-06 13:18:00 +02:00
mi_extra.c Fix Bug #18559 "log tables cannot change engine, and 2006-08-03 21:28:15 +04:00
mi_info.c This patch cleans up two tests which were a bit fragile from other failing tests. It also removes some variables associated with removed RAID support. 2006-02-24 13:20:51 -08:00
mi_key.c Merge mysql.com:/home/mydev/mysql-5.0-bug19604 2006-05-31 10:27:53 +02:00
mi_keycache.c Remove compiler warnings 2006-03-29 17:04:00 +03:00
mi_locking.c myisamdef.h, mi_locking.c, mi_dynrec.c: 2006-02-22 08:32:58 +01:00
mi_log.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_open.c Fix Bug #18559 "log tables cannot change engine, and 2006-08-03 21:28:15 +04:00
mi_packrec.c Bug fix for bug #15843 "Added mmap support in myisam creates compile problem 2005-12-19 14:16:21 +01:00
mi_page.c Added support for key_block_size for key and table level (WL#602) 2006-05-03 15:59:17 +03:00
mi_panic.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_preload.c merge 2005-07-19 21:56:10 +02:00
mi_range.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_rename.c WL#1324 table name to file name encoding 2005-12-31 09:01:26 +04:00
mi_rfirst.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_rkey.c Merge chilla.local:/home/mydev/mysql-5.0-ateam 2006-07-06 13:18:00 +02:00
mi_rlast.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_rnext.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_rnext_same.c Merge mysql.com:/home/mydev/mysql-5.0-bug14980 2006-03-10 17:52:28 +01:00
mi_rprev.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_rrnd.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_rsame.c merge 2005-07-19 21:56:10 +02:00
mi_rsamepos.c unsigned char -> uchar 2006-06-19 12:45:34 +03:00
mi_scan.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_search.c This changeset is largely a handler cleanup changeset (WL#3281), but includes fixes and cleanups that was found necessary while testing the handler changes 2006-06-04 18:52:22 +03:00
mi_static.c Merge 2005-09-06 09:20:15 +02:00
mi_statrec.c Many files: 2005-12-01 13:34:48 +01:00
mi_test1.c Added support for key_block_size for key and table level (WL#602) 2006-05-03 15:59:17 +03:00
mi_test2.c This changeset is largely a handler cleanup changeset (WL#3281), but includes fixes and cleanups that was found necessary while testing the handler changes 2006-06-04 18:52:22 +03:00
mi_test3.c Added support for key_block_size for key and table level (WL#602) 2006-05-03 15:59:17 +03:00
mi_test_all.res Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_test_all.sh Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mi_unique.c Merge mysql.com:/home/mydev/mysql-5.0-bug14980 2006-03-10 17:52:28 +01:00
mi_update.c Merge mysql.com:/home/mydev/mysql-5.0-bug19604 2006-05-31 10:27:53 +02:00
mi_write.c Fix Bug #18559 "log tables cannot change engine, and 2006-08-03 21:28:15 +04:00
myisam_ftdump.c Merge mysql.com:/home/elkin/MySQL/BARE/5.0 2006-04-25 20:05:15 +03:00
myisamchk.c Final patch to remove the last of the OS2 support. 2006-04-15 18:17:32 -07:00
myisamdef.h Fix Bug #18559 "log tables cannot change engine, and 2006-08-03 21:28:15 +04:00
myisamlog.c Merge mysql.com:/home/my/mysql-5.0 2006-05-04 15:58:30 +03:00
myisampack.c This changeset is largely a handler cleanup changeset (WL#3281), but includes fixes and cleanups that was found necessary while testing the handler changes 2006-06-04 18:52:22 +03:00
NEWS Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
rt_index.c Merge chilla.local:/home/mydev/mysql-5.0-ateam 2006-07-06 13:18:00 +02:00
rt_index.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
rt_key.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
rt_key.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
rt_mbr.c Merge chilla.local:/home/mydev/mysql-5.0-ateam 2006-07-06 13:18:00 +02:00
rt_mbr.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
rt_split.c Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 2005-05-23 10:45:48 +02:00
rt_test.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
sort.c Now ftparser does not need to bother about memory management - 2006-05-30 18:15:18 +02:00
sp_defs.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
sp_key.c Merge 2005-10-06 10:54:07 +02:00
sp_test.c Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
test_pack Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
TODO Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00