Commit graph

958 commits

Author SHA1 Message Date
svoj@mysql.com/april.(none)
7afbe5f86e Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-4.1-engines
2006-10-02 14:42:12 +05:00
istruewing@chilla.local
5ad8f1c464 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug22384
2006-09-29 17:17:01 +02:00
istruewing@chilla.local
fd2a6a7a40 Merge chilla.local:/home/mydev/mysql-4.0-bug22384
into  chilla.local:/home/mydev/mysql-4.1-bug22384
2006-09-28 21:47:42 +02:00
istruewing@chilla.local
4027fc8dca Bug#22384 - DELETE FROM table causes "Incorrect key file for table"
Deletes on a big index could crash the index when it needs to
shrink.

Put a forgotten negation operator in.

No test case. It is too big for the test suite. And it does not
work with 4.0, only with higher versions. It is attached to the
bug report.
2006-09-28 11:41:38 +02:00
gkodinov@dl145s.mysql.com
55cc4fd5c6 Merge dl145s.mysql.com:/data/bk/team_tree_merge/mysql-4.1
into  dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-4.1-opt
2006-09-28 10:19:25 +02:00
istruewing@chilla.local
ac778232cd Bug#20719 - Reading dynamic records with write buffer could fail
After merge fix.
2006-09-27 11:55:30 +02:00
istruewing@chilla.local
6ff6d80e57 Merge chilla.local:/home/mydev/mysql-4.1-bug20719
into  chilla.local:/home/mydev/mysql-4.1-bug20719-m
2006-09-27 09:30:54 +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
istruewing@chilla.local
2b121cd0e1 Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
After merge fix.
2006-09-22 17:23:25 +02:00
istruewing@chilla.local
9d0cedffad Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into  chilla.local:/home/mydev/mysql-4.0-bug14400
2006-09-22 15:06:01 +02:00
istruewing@chilla.local
bb2a7fec48 Merge chilla.local:/home/mydev/mysql-4.0--team
into  chilla.local:/home/mydev/mysql-4.0-bug14400
2006-09-22 15:03:50 +02:00
istruewing@chilla.local
47dc3fbe8a Merge bk-internal:/home/bk/mysql-4.0
into  chilla.local:/home/mydev/mysql-4.1-bug14400-monty
2006-09-19 10:17:25 +02:00
istruewing@chilla.local
45f7514d03 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug14400
2006-09-15 14:02:43 +02:00
istruewing@chilla.local
d53ac19620 Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
After merge fix.
2006-09-14 16:55:57 +02:00
istruewing@chilla.local
38886ffa2b Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug14400
2006-09-12 11:40:24 +02:00
istruewing@chilla.local
45ceab9ec5 Merge chilla.local:/home/mydev/mysql-4.0-bug14400
into  chilla.local:/home/mydev/mysql-4.1-bug14400
2006-09-07 16:46:20 +02:00
istruewing@chilla.local
39c0f0a484 Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
Additional fix for full keys and test case.
2006-09-07 15:39:31 +02: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
istruewing@chilla.local
7439a52434 Merge chilla.local:/home/mydev/mysql-4.0-bug14400
into  chilla.local:/home/mydev/mysql-4.1-bug14400
2006-08-29 21:08:40 +02:00
istruewing@chilla.local
0b2a9d01ed Bug#14400 - Query joins wrong rows from table which is
subject of "concurrent insert"
Better fix by Monty: "The previous bug fix didn't work
when using partial keys."
2006-08-29 20:45:04 +02:00
svoj@april.(none)
f7c8ed108d Merge april.(none):/home/svoj/devel/bk/mysql-4.1-engines
into  april.(none):/home/svoj/devel/mysql/BUG19702/mysql-4.1
2006-08-22 13:13:28 +05:00
svoj@may.pils.ru
eccd9969c7 BUG#19702 - Using myisampack/myisamchk on a FULLTEXT indexed
table results in table corrupt

Fulltext key has always two keysegs, thus we need to update
FT_SEGS (last) element from seg array in case of compressed table.
Also we must update ft2_keyinfo.
2006-08-17 21:23:00 +05:00
svoj@april.(none)
a55d18e746 Merge april.(none):/home/svoj/devel/bk/mysql-4.1
into  april.(none):/home/svoj/devel/mysql/BUG18874/mysql-4.1
2006-08-14 18:13:50 +05:00
svoj@may.pils.ru
d4bdba176f BUG#18874 - Setting myisam_repair_threads > 1, index cardinality always 1
Fixed by moving update_key_parts() down to be after write_index().
2006-08-14 17:05:02 +05:00
monty@mysql.com/narttu.mysql.fi
7d0b042ec5 Better bug fix for #14400 "Query joins wrong rows from table which is subject of "concurrent insert""
The previous bug fix didn't work when using partial keys.
Don't use GNUC min/max operations are they are depricated.
Fixed valgrind warning
2006-08-10 22:41:19 +03:00
ramil/ram@mysql.com/myoffice.izhnet.ru
50ae5b7989 Fix for bug #20709: Collation not used in group by on 4.1.
myisam/mi_uniue.c:mi_check_unique() should skip trailing spaces comparing 
TEXT and VARTTEXT key segments.
2006-08-10 15:06:22 +05:00
svoj@may.pils.ru
81b70f9798 BUG#20060 - mysqld option "--flush " doesn't work for update statement
Problem described in this bug report affects MyISAM tables only.

Running mysqld --flush instructs mysqld to sync all changes to disk
after each SQL statement. It worked well for INSERT and DELETE
statements, but it did sync for UPDATE only in case if there was
index change (change of colum that has an index). If no updated column
has an index, data wasn't synced to disk.

This fix makes UPDATE statement to sync data to disk even if there is
no index change (that is only data change) and mysqld is run with
--flush option.
2006-08-09 14:28:39 +05:00
ingo/mydev@chilla.local
eddb73b365 Bug#20719 - Reading dynamic records with write buffer could fail
After merge fix
2006-07-29 21:58:50 +02:00
ingo/mydev@chilla.local
df78ef6357 Merge chilla.local:/home/mydev/mysql-4.0-bug20719
into  chilla.local:/home/mydev/mysql-4.1-bug20719
2006-07-26 19:05:39 +02:00
ingo/mydev@chilla.local
d781552a18 Bug#20719 - Reading dynamic records with write buffer could fail
Fixed a possible problem with reading of dynamic records
when a write cache is active. The cache must be flushed
whenever a part of the file in the write cache is to be 
read.

Added a read optimization to _mi_read_dynamic_record().

No test case. This was a hypothetical but existing problem.
2006-07-21 12:22:41 +02:00
ingo/mydev@chilla.local
987abbc253 Merge chilla.local:/home/mydev/mysql-4.1-bug19835
into  chilla.local:/home/mydev/mysql-4.1-amerge
2006-07-08 19:27:16 +02:00
ingo/mydev@chilla.local
d341ca941f Merge chilla.local:/home/mydev/mysql-4.1-bug17877
into  chilla.local:/home/mydev/mysql-4.1-amerge
2006-07-08 19:26:18 +02:00
ingo/mydev@chilla.local
065cdb030a Merge chilla.local:/home/mydev/mysql-4.1-bug14400
into  chilla.local:/home/mydev/mysql-4.1-amerge
2006-07-08 19:25:01 +02:00
ingo/mydev@chilla.local
eaa9350c90 Merge chilla.local:/home/mydev/mysql-4.1-bug11824
into  chilla.local:/home/mydev/mysql-4.1-amerge
2006-07-08 19:23:55 +02:00
acurtis@xiphis.org
86132d5d8f Bug#8706
"temporary table with data directory option fails"
  myisam should not use user-specified table name when creating
  temporary tables and use generated connection specific real name.
  Test included.
2006-07-05 17:18:59 -07:00
ingo@mysql.com
40c103478d Merge mysql.com:/home/mydev/mysql-4.0-bug14400
into  mysql.com:/home/mydev/mysql-4.1-bug14400
2006-07-04 19:10:13 +02:00
ingo@mysql.com
99ad23ec7c Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
It was possible that fetching a record by an exact key value 
(including the record pointer) could return a record with a 
different key value. This happened only if a concurrent insert 
added a record with the searched key value after the fetching 
statement locked the table for read.

The search succeded on the key value, but the record was
rejected as it was past the file length that was remembered
at start of the fetching statement. With other words it was 
rejected as being a concurrently inserted record.

The action to recover from this problem was to fetch the 
record that is pointed at by the next key of the index. 
This was repeated until a record below the file length was 
found.

I do now avoid this loop if an exact match was searched. 
If this match is beyond the file length, it is now treated 
as "key not found". There cannot be another key with the 
same record pointer.
2006-06-28 18:55:30 +02:00
ingo@mysql.com
9dd5bc3843 Bug#19835 - Binary copy of corrupted tables crash the server when issuing a query
A corrupt table with dynamic record format can crash the 
server when trying to select from it.
        
I fixed the crash that resulted from the particular type 
of corruption that has been reported for this bug.

No test case. To test it, one needs a table with a very special
corruption. The bug report contains a file with such a table.
2006-06-28 16:07:39 +02: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
e67bdaf604 Bug#11824 - internal /tmp/*.{MYD,MYI} files remain, causing subsequent queries to fail
Very complex select statements can create temporary tables
that are too big to be represented as a MyISAM table.

This was not checked at table creation time, but only at
open time. The result was an attempt to delete the 
"impossible" table.

But if the server is built --with-raid, MyISAM tries to 
open the table before deleting the files. It needs to find 
out if the table uses the raid support and how many raid 
chunks there are. This is done with an open "for repair",
which will almost always succeed.

But in this case we have an "impossible" table. The open
failed. Hence the files were not deleted. Also the error
message was a bit unspecific.

I turned an open error in this situation into the assumption 
of having no raid support on the table. Thus the normal data 
file is tried to be deleted. This may however leave existing 
raid chunks behind.

I also added a check in mi_create() to prevent the creation
of an "impossible" table. A more decriptive error message is
given in this case.

No test case. The required select statement is way too
large for the test suite. I added a test script to the
bug report.
2006-06-27 11:26:41 +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
paul@polar.kitebird.com
3cd7e135d4 myisam_ftdump.c:
myisam_ftdump options: --help first, then rest in
  lexical order.
2006-04-23 19:26:56 -05:00
svoj@april.(none)
7412db5e56 BUG#17917 - SELECT from compressed MyISAM table crashes MySQL server
Retrieving data from compressed MyISAM table which is bigger than 4G on 32-bit box
with mmap() support results in server crash.

mmap() accepts length of bytes to be mapped in second param, which is 32-bit
size_t. But we pass data_file_length, which is 64-bit my_off_t. As a result only
first data_file_length % 4G were mapped.

This fix adds additional condition for mmap() usage, that is use mmap() for
compressed table which size is no more than 4G on 32-bit platform.
2006-04-13 14:37:03 +05: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
84e7c9633a Fix error in prefix compression of keys in MyISAM when key length changed from 254 -> 255
Bug #17705 "FT Index corruption occurs with UTF8 data..."
(Actually, the bug had nothing to do with FT index but with general key compression)
2006-03-30 01:50:52 +03:00
ingo@mysql.com
d0c6eb885d Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
For "count(*) while index_column = value" an index read
is done. It consists of an index scan and retrieval of
each key.

For efficiency reasons the index scan stores the key in
the special buffer 'lastkey2' once only. At the first 
iteration it notes this fact with the flag 
HA_STATE_RNEXT_SAME in 'info->update'.

For efficiency reasons, the key retrieval for blobs
does not allocate a new buffer, but uses 'lastkey2'...

Now I clear the HA_STATE_RNEXT_SAME flag whenever the 
buffer has been polluted. In this case, the index scan
copies the key value again (and sets the flag again).
2006-03-10 15:03:04 +01:00
svoj@april.(none)
4dc4502ab3 BUG#16489 - utf8 + fulltext leads to corrupt index file.
Fixed that UPDATE statement crashes multi-byte charset fulltext index.
2006-01-23 17:15:33 +04:00
monty@mysql.com
fd4a040325 Fixes during review of new pushed code:
Remove wrong fix for Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
Safety fix for bug #13855 "select distinct with group by caused server crash"
2006-01-06 21:42:17 +02:00
serg@serg.mylan
297d80dc11 BUG#11336 - fulltext index corruption after repair_by_sort and mi_delete
for uca collation isalnum and strnncollsp don't agree on whether
0xC2A0 is a space (strnncollsp is right, isalnum is wrong).

they still don't, the bug was fixed by avoiding strnncollsp
2005-12-18 13:30:01 +01:00