Commit graph

88 commits

Author SHA1 Message Date
lars/lthalmann@mysql.com/dl145h.mysql.com
31abddb5e1 Merge mysql.com:/users/lthalmann/bkroot/mysql-4.1-rpl
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-4.1-merge
2006-10-25 17:08:57 +02:00
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
bar@mysql.com/bar.intranet.mysql.r18.ru
5c38da179c Bug#22052 Trailing spaces are not removed from UNICODE fields in an index
Fix: using charset-aware functions cs->cset->lengthsp() and cs->cset->fill()
  instead of single byte code which is not UCS2 compatible.
2006-10-03 14:11:57 +05:00
monty@mishka.local
1524cd001d Cleanup during review of new code
Fixed wrong allocation that could cause buffer overrun when using join cache
2005-06-21 18:18:58 +03:00
reggie@mdk10.(none)
68c6470acf Bug #8183 MERGE and SYM cause wrong SHOW CREATE TABLE
Without this patch, all file elements in info have symlink resolved
pathnames.  This means append_create_info does not  have any way
of showing the correct database name when a symlinked database is used.
2005-06-09 09:00:51 -05:00
ingo@mysql.com
d3d7c46b1c Bug#8306 - TRUNCATE leads to index corruption
Added a check, if the table, which we are going to create, is open.
This can happen if a MERGE mapped table is TRUNCATEd.
2005-03-02 10:35:00 +01:00
monty@mysql.com
e5b788146a Fixed new bug that caused symlink test to fail 2005-01-18 03:49:39 +02:00
serg@serg.mylan
ef58da5435 don't ignore errors in readlink 2005-01-15 20:08:53 +01:00
konstantin@mysql.com
f08bbd1f12 assert.h needed for my_dbug.h now is included in my_dbug.h, where it for
some reason wasn't included before.
A lot of files cleaned up from #include <assert.h>
2004-06-10 23:58:39 +04:00
hf@deer.(none)
15ea09b79d WL#1163 (Make spatial code separable for other parts)
--with-geometry and
--with-embedded-privilege-control
configure switches added
2004-05-27 20:31:30 +05:00
hf@deer.(none)
374a28d293 Merging 2004-05-27 16:32:49 +05:00
ingo@mysql.com
784c9526ec WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
HEAP: Copies the key count to a backup variable and sets the key count to zero.
That way, no HEAP function will ever try to touch any index.
Re-enabling is done by copying back the backup variable.
To avoid memory leak at table close, disable deletes all index trees.
Re-enabling must be done with empty indexes and data anyway. Otherwise,
the indexes would need to be repaired, wich HEAP is not capable of.
MyISAM: Only the key_map is cleared and set.
Re-enabling must be done with empty indexes and data. Otherwise, repair needs
to be done which will enable all keys persistently.
The former implementation disabled only non-unique keys and maked this persistent.
The new implementation additionally can disable all keys, but only without
making this persistent. Re-enabling all keys can be done without repair,
if data file and indexes are empty.
2004-05-06 15:53:01 +02:00
hf@deer.(none)
164a9e3500 WL#1163 (To make spatial code optional)
a couple of lines added to make code easier to read
2004-03-15 12:31:21 +04:00
hf@deer.(none)
ec457a96ef WL#1163 To make spatial code optional
myisam spatial code isolated
2004-03-12 18:51:03 +04:00
monty@mysql.com
e0cc6799ec Merge with 4.0.17 2003-12-17 17:35:34 +02:00
monty@mysql.com
f995a5f4aa Fix autoincrement for signed columns (Bug #1366)
Fixed problem with char > 128 in QUOTE() function. (Bug #1868)
Disable creation of symlinks if my_disable_symlink is set
Fixed searching of TEXT with end space. (Bug #1651)
Fixed caching bug in multi-table-update where same table was used twice. (Bug #1711)
Fixed problem with UNIX_TIMESTAMP() for timestamps close to 0. (Bug #1998)
Fixed timestamp.test
2003-12-12 22:26:58 +02:00
monty@mashka.mysql.fi
cab1dc628c CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS
New multi-key-cache handling. This was needed becasue the old one didn't work reliable with MERGE tables.
ALTER TABLE table_name ... CHARACTER SET  ... now changes all char/varchar/text columns to the given character set
(One must use ALTER TABLE ... DEFAULT CHARACTER SET ... to change the default character set)
Fixed that have_compress is detected properly (fixes problems with func_compress.test on platforms without zlib)
New syntax for CACHE INDEX ('keys' is optional if no index name is given and one mentions the key cache name only ones)
Removed compiler warnings
Added mysql_set_server_option() to allow clients like PHP to easaily set/reset the multi-statement flag.
2003-11-18 13:47:27 +02:00
ram@deer.(none)
ea5a7a3d7e fix for r-tree code (memory overlap reported by valgrind)
new comments.
2003-11-04 17:58:18 +04:00
serg@serg.mylan
9a057fd0bd ft1->ft2 auto-conversion on INSERT (WL#725) 2003-10-02 20:22:29 +02:00
monty@mashka.mysql.fi
73f66f68fd merge with 4.0.15 2003-09-11 20:24:14 +03:00
monty@mashka.mysql.fi
75b2c4a62f Fixed rare bug in MYISAM introduced in 4.0.3 where the index file header was not updated directly after an UPDATE of split dynamic rows. 2003-09-05 06:42:55 +03:00
monty@narttu.mysql.fi
77a70a0a24 merge with 4.0.15 2003-08-29 13:44:35 +03:00
monty@narttu.mysql.fi
8a77f97079 Add detection of in_addr_t
Add pack_bits to pack_reclength for dynamic rows.  This solves buffer a possible buffer overflow on update.
(This will probably solve bug #563)
Fix test for available file descriptors in mysqltest
Fixed core dump bug in replication tests when running without transactional table support
2003-08-28 06:08:17 +03:00
serg@serg.mylan
d5fbeee71f fixed a bug that made 4.0 MYI+FT files unreadable in 4.1 2003-06-28 23:54:33 +02:00
serg@serg.mylan
9b3dccd662 reverting Monty's "fix" that turned a warning into an error. 2003-06-16 19:07:48 +02:00
monty@mashka.mysql.fi
6aa8929cf3 After merge fixes
Added initialization of all important global variables
2003-05-21 21:39:58 +03:00
monty@narttu.mysql.fi
dd2b7918cd Merge with 4.0.13 2003-05-19 16:35:49 +03:00
monty@narttu.mysql.fi
3e72b423e3 Fix for MacOSX and symlinks
Fix for USE_FRM and crashed index file
2003-05-14 01:27:26 +03:00
monty@narttu.mysql.fi
51f9879008 Removed compiler warnings
Fixed memory leak in new filesort code
Optimzed sub selects to use keys with outer references.
Increased max tables in join to 62
2003-05-06 01:38:38 +03:00
monty@mashka.mysql.fi
bf6cfd2948 Fix for -fbranch-probabilites (bug 268)
Fix for LEFT/RIGHT/MID with multi-byte-character sets (bug 314)
Fix for new bison 1.875
max_insert_delayed_threads and delayed_insert_timeout now works as documented (bug 211)
Don't show port in SHOW PROCESSLIST for system threads
Fix problem with ORDER BY being discarded for some DISTINCT queries (bug 275)
Fixed bug with NATURAL LEFT JOIN, NATURAL RIGHT JOIN and RIGHT JOIN when
using many joined tables (Bug 212)
2003-04-26 20:43:28 +03:00
serg@sergbook.mysql.com
b6ca95a7f4 warning when a 4.1 MYI file is opened in 4.0 2003-04-23 14:03:21 +04:00
monty@narttu.mysql.fi
e7288f279e After merge fixes
Don't create temporary objects with no table name
2003-03-17 15:05:04 +02:00
monty@narttu.mysql.fi
a434bca704 Merge with 4.0 2003-03-16 19:17:54 +02:00
monty@mashka.mysql.fi
7fdf7a4101 merge with 3.23 to get:
- Better detection of crashed .MYI file
- Ignore writeable config files
2003-03-11 21:45:39 +02:00
monty@mashka.mysql.fi
c38125c5db Cleaned up disk_pos_assert() to be more general. 2003-03-11 21:25:17 +02:00
serg@serg.mysql.com
2a3003e99b more propection in mi_open against badly corrupted MYI headers 2003-03-10 16:48:13 +01:00
ram@mysql.r18.ru
e5418e04c6 Bug fix: we should set have_rtree value in case of table reopen.
Code cleanup.
2003-02-19 21:14:50 +04:00
monty@mashka.mysql.fi
023d6dd39b Merge with 4.0.11 2003-02-04 21:52:14 +02:00
serg@serg.mysql.com
1ced5948f0 low-level error messages cleanup 2003-01-28 17:42:08 +01:00
serg@serg.mysql.com
e1dc02b975 protection agains badly charsed indexfile 2003-01-27 17:27:21 +01:00
serg@serg.mysql.com
3f55032c12 merged 2003-01-21 19:37:38 +01:00
serg@serg.mysql.com
0dff67cba2 Two-level index structure for FULLTEXT indexes 2003-01-21 19:24:34 +01:00
monty@mashka.mysql.fi
f8e660d88c merge with 4.0.9
To get bug fixes for TCP/IP connections, FORCE INDEX and OPTIMIZE TABLE with NULL keys
2003-01-09 03:55:26 +02:00
monty@mashka.mysql.fi
3c08da957e Don't count NULL values in cardinalty for MyISAM tables.
Free row buffer cache after each query for MyISAM tables.
Added table join option FORCE INDEX
Fixed core dump bug when connecting with hostname that could not be resolved.
2003-01-09 02:19:14 +02:00
monty@mashka.mysql.fi
dac6498f9b Merge with 4.0 2002-11-21 15:56:48 +02:00
serg@serg.mysql.com
2d8358bc2e fixed "huge number of packed rows in MyISAM" bug in 4.0 tree 2002-10-28 23:24:32 +01:00
serg@serg.mysql.com
ebd9fced0b fixed MyISAM crash on dynamic-row tables with huge number of to-be-packed fields 2002-10-28 22:52:02 +01:00
monty@hundin.mysql.fi
fbf6ab4465 merge with 4.0.5 2002-10-16 19:30:24 +03:00
monty@hundin.mysql.fi
67d3cd643b Merge with 3.23.54 2002-10-16 13:11:25 +03:00
bar@bar.mysql.r18.ru
954a47b95a Simple charsets now have strncoll() field too 2002-10-09 15:40:57 +05:00