Commit graph

217 commits

Author SHA1 Message Date
istruewing@chilla.local
7dc7af51e0 Bug#22119 - Changing MI_KEY_BLOCK_LENGTH makes a wrong myisamchk
When compiling with a default key block size greater than the
smallest key block size used in a table, checking that table
failed with bogus errors. The table was marked corrupt. This
affected myisamchk and the server.

The problem was that the default key block size was used at
some places where sizes less or equal to the block size of the
index in check was required.

We do now use the key block size of the particular index
when checking.

A test case is available for later versions only.
2006-10-25 13:39:40 +02:00
istruewing@chilla.local
1daa6a710d Merge chilla.local:/home/mydev/mysql-4.1-bug8283
into  chilla.local:/home/mydev/mysql-4.1-bug8283-one
2006-10-09 19:40:16 +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
holyfoot/hf@mysql.com/deer.(none)
14b16d89d9 Merge mysql.com:/home/hf/work/mysql-4.1.12991
into  mysql.com:/home/hf/work/mysql-4.1.15428
2006-09-25 16:35:57 +05:00
holyfoot/hf@mysql.com/deer.(none)
668a57b10a bug #12991 (compile error --without-geometry) 2006-09-06 19:56:19 +05:00
holyfoot/hf@mysql.com/deer.(none)
c32f62bebb bug #12620 (UTF-8 indexing causes ER_NO_KEYFILE error)
The problem is that on some Mac OS X-es the file writing/reading
call with zero bytes to read/write returns error.
So here i try to eliminate that kinds of calls.
2006-09-04 19:47:24 +05:00
ingo@mysql.com
d8499f2d8f Bug#17877 - Corrupted spatial index
CHECK TABLE could complain about a fully intact spatial index.
A wrong comparison operator was used for table checking. 
The result was that it checked for non-matching spatial keys. 
This succeeded if at least two different keys were present, 
but failed if only the matching key was present.

I fixed the key comparison.
2006-06-28 14:27:37 +02:00
ingo@mysql.com
3c317fef53 Merge mysql.com:/home/mydev/mysql-4.0-bug10405
into  mysql.com:/home/mydev/mysql-4.1-bug10405
2006-04-29 19:38:41 +02:00
ingo@mysql.com
d1e25f9770 Bug#10405 - myisamchk damages auto_increment columns when changing character set
Whenever 'myisamchk' needed to recreate a table,
the auto increment information was lost.

Now the forgotten element of the table creation
information is set correctly.
2006-04-10 13:38:56 +02:00
monty@mysql.com
19502e8eb5 Review of new pushed code
Removed wrong fix for bug #14009 (use of abs() on null value causes problems with filesort)
Mark that add_time(), time_diff() and str_to_date() can return null values
2005-11-01 13:00:02 +02:00
jani@ua141d10.elisa.omakaista.fi
3042591a9f Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1
2005-10-25 12:12:10 +03:00
jani@ua141d10.elisa.omakaista.fi
45066745cc Changed some dbug print options. 2005-10-25 12:11:31 +03:00
monty@mysql.com
3e653fb922 Added more tests for new UPDATE ... ORDER BY ... LIMIT optimization 2005-10-25 02:27:40 +03:00
sergefp@mysql.com
e3f623d6e8 BUG#9622: post-review-fixes: better comments 2005-10-23 02:46:10 +04:00
sergefp@mysql.com
15a78334c3 BUG#9622, stage 2, work together with fix for BUG#12232:
added "nulls_ignored" index statistics collection method for MyISAM tables.
(notification trigger: this is about BUG#9622).
2005-10-21 06:29:17 +04:00
sergefp@mysql.com
d90b988da7 BUG#12232: Addressing docs team feedback: s/inequal/unequal/ 2005-09-24 01:39:50 +04:00
sergefp@mysql.com
f9475d1d15 BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index
statistics (like 4.0 did) (patch #3, with review #1 & #2 feedback addressed)
2005-09-21 02:18:29 +04:00
ramil@mysql.com
0f34207606 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/ram/work/4.1.b4214
2005-09-05 16:41:01 +05:00
ramil@mysql.com
1fb4441782 a fix (bug #4214: Table corruption with myisampack and large BLOB objects). 2005-09-05 16:31:42 +05:00
hf@deer.(none)
13a23f70b9 Fix for bug #9465 (check table extended fails with SPATIAL) 2005-08-09 21:30:28 +05:00
monty@mysql.com
543691ab15 Merge mysql.com:/home/my/mysql-4.0 into mysql.com:/home/my/mysql-4.1 2005-06-07 16:34:10 +03:00
mronstrom@mysql.com
1eaacaf194 Bug #10901
After review fix
Copy from internal state to share state only when in lock write
mode (happens only when lock table x write has been performed since
update_state_info is only called when holding a TL_READ_NO_INSERT
lock normally. Previous patch would have failed in combination with
delayed writes.
2005-06-03 22:52:24 +02:00
mronstrom@mysql.com
96252c1de9 Bug #10901
Analyze table corrupts the state on
data_file_length, records, index_file_length...
by writing the shared state when there is an updated internal
state due to inserts or deletes
Fixed by synching the shared state with the internal state before
writing it to disk
Added test cases of 2 error cases and a normal case in new
analyze test case
2005-06-03 17:13:43 +02:00
sergefp@mysql.com
480957e7e6 Fix for BUG#9622: Make index statistics collection in MyISAM behave the same
way in ALTER TABLE ... ENABLE KEYS, ANALYZE TABLE and after bulk insert:
now statistics collection always assumes NULLs are inequal.
2005-05-14 00:21:53 +02:00
serg@serg.mylan
0294339b9c don't check record's checksum in REPAIR 2005-04-11 20:04:50 +02:00
hf@deer.(none)
27eff9f700 Fix for bug #7545 (Undefined symbols if --without-geometry) 2005-01-03 17:33:04 +04:00
hf@deer.(none)
e211b26330 Fix for bug #6755 (ALTER TABLE ENABLE KEYS corrupts spatial index) 2004-12-06 11:42:41 +04:00
monty@mysql.com
e9c3887b58 After merge fixes 2004-11-12 17:44:17 +02:00
serg@serg.mylan
0be3c55594 mi_write: fix for ft2 when found word (in the tree) has different length as the word to insert 2004-11-11 21:26:24 +01:00
serg@serg.mylan
d2bfefc3c1 proper max_records estimation for sort-repair of fulltext indexes 2004-10-29 14:24:06 +02:00
monty@mysql.com
62f3cd6a31 Merge with 4.0 for 4.1 release
Noteworthy:
- New HANDLER code
- New multi-update-grant-check code
- Table lock code in ha_innodb.cc was not applied
2004-10-06 19:14:33 +03:00
sergefp@mysql.com
6e0ba8e615 Fix for BUG#4785:
* myisampack leaves key_file_length value from original table
 * myisamchk uses this value when calculating key file pointer length
2004-09-22 16:29:15 +04:00
serg@serg.mylan
9b0468bc96 BUG#5327 - mi_sort_index() of 2-level tree 2004-09-03 22:04:08 +02:00
serg@serg.mylan
b60713c033 bug in my_strnncoll_utf8 (and friends) fixed
cleanups
better, charset-dependent, ft_max_len_for_sort value
2004-08-30 08:37:36 +02:00
monty@mysql.com
fd0153304d Fixed some byte order bugs with prepared statements on machines with high-byte-first. (Bug #4173)
Fixed problem with NULL and derived tables (Bug #4097)
Cleanup of new pushed code
2004-06-18 03:02:29 +03:00
serg@serg.mylan
a3e684da44 Merge bk-internal:/home/bk/mysql-4.1/
into serg.mylan:/usr/home/serg/Abk/mysql-4.1
2004-06-04 21:16:55 +02:00
serg@serg.mylan
9a9bde89ce make CHECK killable 2004-06-04 21:15:08 +02:00
paul@kite-hub.kitebird.com
2f0ca1ce42 Fix skipp -> skip once and for all.
(Note: This affects only comments, not variable names.)
2004-06-03 11:52:54 -05:00
serg@serg.mylan
41f4f0317f bug in repair_by_sort of fulltext indexes that contained identical
(as of mi_compare_text) words with different lengths.
bug #3835
2004-05-23 14:01:52 +02:00
serg@serg.mylan
fced5fa188 cleanup of ha_myisam::deactivate_non_unique_index() and Co. 2004-04-02 20:42:35 +02:00
monty@mysql.com
eb91f7b478 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/my/mysql-4.1
2004-03-25 15:05:42 +02:00
monty@mysql.com
ebc3b3afac BTREE-indexes in HEAP tables can now be used to optimize ORDER BY
Don't read character set files if we are using only the default charset. In most cases the user will not anymore get a warning about missing character set files
Compare strings with space extend instead of space strip. Now the following comparisons holds:  "a" == "a " and "a\t" < "a". (Bug #3152).
Note: Because of the above fix, one has to do a REPAIR on any table that has an ascii character < 32 last in a CHAR/VARCHAR/TEXT columns.
2004-03-25 15:05:01 +02:00
hf@deer.(none)
1eccd27d83 Fix for #3067
Shouldn't be moved to 4.1
2004-03-24 19:04:57 +04:00
hf@deer.(none)
1b78e7dd41 Fix for #3067 (REPAIR TABLE reenables disabled keys) 2004-03-22 21:34:36 +04:00
monty@mysql.com
53c810cda4 merge fixes (use old code) 2004-03-18 00:16:04 +02:00
paul@teton.kitebird.com
f71f714773 Fix typo. 2004-03-17 12:28:26 -06:00
monty@mysql.com
350b433569 merge with 4.0 2004-03-16 22:41:30 +02:00
monty@mysql.com
98fb8ea4c7 Merge with 3.23 to get patch for floor() 2004-03-12 01:12:14 +02:00
hf@deer.(none)
9edef96561 Fix for #2237 and #2490 (analyze and check for RTree keys)
Now checking of the RTree keys works without errors.
Worklog entry about appropriate checkup's routine for the RTree added
2004-02-19 17:22:38 +04:00
vva@eagle.mysql.r18.ru
3f50b5204c fixed bug #2762 "grammar error in myisam/mi_check.c" 2004-02-16 18:58:15 +04:00