mariadb/include
istruewing@chilla.local 5f08a83186 Bug#8283 - OPTIMIZE TABLE causes data loss
OPTIMIZE TABLE with myisam_repair_threads > 1 performs a non-quick 
parallel repair. This means that it does not only rebuild all 
indexes, but also the data file.

Non-quick parallel repair works so that there is one thread per 
index. The first of the threads rebuilds also the new data file.

The problem was that all threads shared the read io cache on the
old data file. If there were holes (deleted records) in the table,
the first thread skipped them, writing only contiguous, non-deleted
records to the new data file. Then it built the new index so that
its entries pointed to the correct record positions. But the other
threads didn't know the new record positions, but put the positions
from the old data file into the index.

The new design is so that there is a shared io cache which is filled
by the first thread (the data file writer) with the new contiguous
records and read by the other threads. Now they know the new record
positions.

Another problem was that for the parallel repair of compressed
tables a common bit_buff and rec_buff was used. I changed it so
that thread specific buffers are used for parallel repair.

A similar problem existed for checksum calculation. I made this
multi-thread safe too.
2006-10-09 19:26:55 +02:00
..
.cvsignore Import changeset 2000-07-31 21:29:14 +02:00
config-netware.h Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.0 2006-01-12 17:47:58 +02:00
config-os2.h Implemented UTC_TIME, UTC_DATE and UTC_TIMESTAMP functions (WL#345) 2003-08-11 23:43:01 +04:00
config-win.h config-win.h: 2006-04-29 15:58:02 +02:00
errmsg.h A fix of return value of mysql_stmt_bind_result() and cleanup. 2004-12-15 01:37:22 +03:00
ft_global.h indexless boolean fulltext search was depending on default_charset_info - Bug#8159 2005-02-04 15:24:06 +01:00
hash.h A fix for Bug#7209 "Client error with "Access Denied" on updates 2006-01-04 17:35:30 +03:00
heap.h Bug #12796: Record lost in HEAP table 2005-11-08 00:26:37 -05:00
help_end.h Several fixes for Netware. 2005-08-24 22:03:34 +03:00
help_start.h Several fixes for Netware. 2005-08-24 22:03:34 +03:00
keycache.h Bug#12920 - key_read_requests counter appears to re-set 2005-09-14 13:18:16 +02:00
m_ctype.h Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-4.1 2006-03-23 14:29:43 +04:00
m_string.h Merge mysql.com:/usr/home/ram/work/mysql-4.0 2005-10-13 12:48:30 +05:00
Makefile.am Makefile.am, configure.in: 2005-09-24 15:51:45 +02:00
md5.h Update copyright 2001-12-06 14:10:51 +02:00
merge.h Update copyright 2001-12-06 14:10:51 +02:00
my_aes.h Made keyread (key scanning) a key specific attribute. 2002-06-19 00:22:30 +03:00
my_alarm.h Update copyright 2001-12-06 14:10:51 +02:00
my_alloc.h Fix incorrect spellings of "dropped" in source and tests. (Bug #12828) 2005-08-30 12:24:37 -07:00
my_base.h Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX 2006-03-10 15:03:04 +01:00
my_bitmap.h key_cmp -> key_cmp_if_same 2004-05-16 14:48:32 +03:00
my_dbug.h More debugging 2004-11-10 18:07:39 +02:00
my_dir.h Fix for Bug #1952 2003-12-12 03:39:29 +03:00
my_getopt.h Merge with 4.0 2004-09-01 04:12:09 +03:00
my_global.h Merge mysql.com:/M40/clone-4.0 into mysql.com:/M40/upward-4.0 2005-09-08 11:04:43 +02:00
my_handler.h BUG#9622, stage 2, work together with fix for BUG#12232: 2005-10-21 06:29:17 +04:00
my_list.h Rename rest() macro in my_list.h to list_rest(). (Bug #12327) 2005-08-09 18:02:36 -07:00
my_net.h 4 small items in this: 2003-10-31 23:20:23 +01:00
my_no_pthread.h CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS 2003-11-18 13:47:27 +02:00
my_nosys.h Update copyright 2001-12-06 14:10:51 +02:00
my_pthread.h Bug#15869 Cannot shutdown the server - it restarts 2006-05-19 13:07:24 +02:00
my_semaphore.h more #ifdef THREAD added 2003-04-30 12:32:43 +02:00
my_sys.h Bug#8283 - OPTIMIZE TABLE causes data loss 2006-10-09 19:26:55 +02:00
my_time.h Fix for bug #6266 "Invalid DATETIME value is not handled properly". 2004-11-15 15:44:29 +03:00
my_tree.h after merge fixes 2004-03-18 00:09:13 +02:00
my_xml.h Portability fixes 2003-02-28 14:32:40 +02:00
myisam.h Bug#8283 - OPTIMIZE TABLE causes data loss 2006-10-09 19:26:55 +02:00
myisammrg.h key_cmp -> key_cmp_if_same 2004-05-16 14:48:32 +03:00
myisampack.h Casted all macro arguments, 2004-07-28 21:46:22 +02:00
mysql.h minor fix (backport from 5.0) - changed function prototype/definition 2005-07-19 17:12:00 +02:00
mysql_com.h Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1 2005-02-02 15:06:36 +04:00
mysql_embed.h Merge with 4.0, mainly to get changes to windows project files 2004-05-20 00:54:52 +03:00
mysql_time.h Fix for bug #6266 "Invalid DATETIME value is not handled properly". 2004-11-15 15:44:29 +03:00
mysql_version.h.in Merge with 4.0 to get fixes for Windows project files 2004-05-25 02:47:25 +03:00
mysqld_error.h Fixed bug #17873: confusing error message when IGNORE/USE/FORCE INDEX 2006-05-30 00:08:58 -07:00
mysys_err.h Bug#8349 myisamchk: --set-charset does not work 2005-02-22 16:37:25 +04:00
nisam.h Update copyright 2001-12-06 14:10:51 +02:00
queues.h fix_max_connections to resize alarm_queue (Bug #1435) 2003-10-06 14:11:16 +02:00
raid.h BUG#10241 cygwin port: invalid pragma interface directives 2005-05-04 15:05:56 +02:00
rijndael.h Made keyread (key scanning) a key specific attribute. 2002-06-19 00:22:30 +03:00
sha1.h A fix for Bug#13944 "libmysqlclient exporting sha1_result function": 2006-01-11 17:31:52 +03:00
sql_common.h Remove stale declaration, fix a typo in comment. 2004-10-15 22:03:11 +04:00
sql_state.h Fixed bug #17873: confusing error message when IGNORE/USE/FORCE INDEX 2006-05-30 00:08:58 -07:00
sslopt-case.h fixed so that --ssl and --skip-ssl works with the MySQL clients. 2002-09-17 23:46:53 +03:00
sslopt-longopts.h consistency fix - all help texts for command-line options should end with a dot. 2003-06-13 10:59:02 +02:00
sslopt-vars.h Update copyright 2001-12-06 14:10:51 +02:00
t_ctype.h Update copyright 2001-12-06 14:10:51 +02:00
thr_alarm.h Added patches from Novell 2004-05-25 22:00:14 +03:00
thr_lock.h Merge mysql.com:/home/my/mysql-4.0 2005-07-27 13:24:59 +03:00
typelib.h Bug#6202: ENUMs are not case sensitive even if declared BINARY 2004-10-25 17:51:26 +05:00
violite.h Merge selena.:H:/MYSQL/src/#05588-mysql-4.0 2005-09-07 14:59:41 +04:00