way in ALTER TABLE ... ENABLE KEYS, ANALYZE TABLE and after bulk insert:
now statistics collection always assumes NULLs are inequal.
mysql-test/r/myisam.result:
Testcase for BUG#9622
mysql-test/t/myisam.test:
Testcase for BUG#9622
myisam/mi_key.c:
Fixed wrong buffer usage for auto-increment key with blob part that caused
CHECK TABLE to report that the table was wrong. (Bug #10045)
mysql-test/r/auto_increment.result:
New test case
mysql-test/t/auto_increment.test:
New test case
This is the second of three changesets. It contains the pure bug fix.
It also contains the second after-review fixes.
The problem was that with gcc on x86, shifts are done modulo word size.
'value' is 32 bits wide and shifting it by 32 bits is a no-op.
This was triggered by an evil distribution of character incidences.
A distribution of 2917027827 characters made of 202 distinct values led to
34 occurrences of 32-bit Huffman codes.
This might have been the first time ever that write_bits() had to write
32-bit values. Since it can be expected that one day even 32 bits might
be insufficient, the third changeset suggests to enlarge some variables
to 64 bits.
Fixed some casts for 64-bit systems.
Fixed a possible buffer overflow.
myisam/myisampack.c:
Bug#9487 - myisampack segmentation violation and bus error
Added or changed proper casts for the argument of flush_buffer().
Added a check for the counterstrike of the trick to have
file_buffer.end some bytes below the real end of the buffer.
Since 4.1 keys are compared with trailing spaces.
Thus, a "x " key can be inserted between a couple of "x" keys.
The existing code did not take this into account. Though the
comments in the code claimed it did.
myisam/mi_search.c:
Bug#9188 - Corruption Can't open file: 'table.MYI' (errno: 145)
Fixed some function comments.
In the case when we insert a different key between two identical keys,
the difference must be additional spaces. In this case the prefix is
the same as that of the new key instead of the (zero) remaining length.
myisam/mi_write.c:
Bug#9188 - Corruption Can't open file: 'table.MYI' (errno: 145)
Fixed a function comment.
mysql-test/r/myisam.result:
Bug#9188 - Corruption Can't open file: 'table.MYI' (errno: 145)
The test result.
mysql-test/t/myisam.test:
Bug#9188 - Corruption Can't open file: 'table.MYI' (errno: 145)
The test case.
recalculate stats/gws for the last word in the index too
remove unused code
myisam/myisam_ftdump.c:
recalculate stats/gws for the last word in the index too
remove unused code
protection against invalid string in ft_get_word
mysys/my_symlink2.c
typo fixed
myisam/ft_parser.c:
protection against invalid string in ft_get_word
mysys/my_symlink2.c:
typo fixed
include/my_global.h:
Auto merged
mysys/mf_tempfile.c:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/share/english/errmsg.txt:
Auto merged
sql/table.cc:
Auto merged
include/my_global.h:
O_NOFOLLOW
isam/create.c:
create table files with O_EXCL|O_NOFOLLOW
merge/mrg_create.c:
create table files with O_EXCL|O_NOFOLLOW
myisam/mi_create.c:
create files of temporary tables with O_EXCL|O_NOFOLLOW
myisammrg/myrg_create.c:
create table files with O_EXCL|O_NOFOLLOW
mysys/mf_tempfile.c:
create temporary files with O_EXCL|O_NOFOLLOW
sql/ha_myisam.cc:
let mi_create know if the table is TEMPORARY
sql/mysql_priv.h:
--allow_suspicious_udfs
sql/mysqld.cc:
--allow_suspicious_udfs
sql/share/english/errmsg.txt:
typo
sql/sql_udf.cc:
--allow_suspicious_udfs
don't allow xxx() udf without any of xxx_init/deinit/add/reset
check paths when loading from mysql.func
sql/table.cc:
create frm of temporary table with O_EXCL|O_NOFOLLOW
Added a check, if the table, which we are going to create, is open.
This can happen if a MERGE mapped table is TRUNCATEd.
myisam/mi_open.c:
Bug#8306 - TRUNCATE leads to index corruption
Made test_if_reopen() globally available.
myisam/myisamdef.h:
Bug#8306 - TRUNCATE leads to index corruption
Declared test_if_reopen() as globally available.
mysql-test/r/myisam.result:
Bug#8306 - TRUNCATE leads to index corruption
The test result.
mysql-test/t/myisam.test:
Bug#8306 - TRUNCATE leads to index corruption
The test case.
What we need to be able to set in myisamchk is
actually a collation, not a character set. This
fix just changes to display the proper error message.
include/mysys_err.h:
New mysys error message "unknown collation".
mysys/charset.c:
Display more proper error when a collation is not found.
mysys/errors.c:
New "unknown collation" error.
Some variable wasn't moved to the initial state during mysql_server_end
myisam/ft_stopwords.c:
resetting ft_stopword_file
sql/mysqld.cc:
free_charsets() call added
Fix for crash when using a double quote in boolean fulltext query.
mysql-test/r/fulltext.result:
Added a test case for bug #8351.
mysql-test/t/fulltext.test:
Added a test case for bug #8351.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
ftbw->off wasn't cleared on reinit - Bug#8234
include/ft_global.h:
get rid of default_charset_info in indexless fulltext searches
myisam/ft_boolean_search.c:
get rid of default_charset_info in indexless fulltext searches
clear ftbw->off on reinits
myisam/ft_static.c:
get rid of default_charset_info in indexless fulltext searches
myisam/ftdefs.h:
get rid of default_charset_info in indexless fulltext searches
sql/ha_myisam.h:
get rid of default_charset_info in indexless fulltext searches
sql/handler.h:
get rid of default_charset_info in indexless fulltext searches
sql/item_func.cc:
get rid of default_charset_info in indexless fulltext searches
-trunc* bug - don't increase yweaks in this case
myisam/ft_boolean_search.c:
-trunc* bug - don't increase yweaks in this case
mysql-test/r/fulltext.result:
-trunc* bug - don't increase yweaks in this case
mysql-test/t/fulltext.test:
-trunc* bug - don't increase yweaks in this case
not simply inline, to fix the linking failure on Sun Solaris 9 (sparc)
with Sun Studio 9, reported by Peter Harvey.
myisam/sort.c:
my_var_write made static inline (fix for a link failure)
mysys/hash.c:
hash_key made static inline (fix a link failure)
(after discussion with SerG)
include/my_base.h:
Handler error code added
myisam/mi_write.c:
New error code handled
myisam/rt_index.c:
check for zero length added
myisam/sp_key.c:
zero length check added
mysql-test/r/gis-rtree.result:
appropriate test result
mysql-test/t/gis-rtree.test:
test case
sql/handler.cc:
new error code handling added
myisam/mi_check.c:
Spatial keys should not be filesort-ed.
Specific function neede to insert key into spatial index
mysql-test/r/gis-rtree.result:
Appropriate test result
mysql-test/t/gis-rtree.test:
Test case
myisam/mi_rnext_same.c:
Fix for BUG#6699:
MERGE handler now uses mi_rnext_same() with priority queue, so skip record unpacking if buf==NULL
myisammrg/myrg_rnext_same.c:
Fix for BUG#6699:
make myrg_rnext_same sort always sort records and return them in key order.
mysql-test/r/merge.result:
Test for BUG#6699
mysql-test/t/merge.test:
Test for BUG#6699