Using 8 bytes for data pointer does not work at least on
all computers. The result may become 0 or negative number.
(mysqld, myisamchk)
myisam/mi_create.c:
Fixed Bug#11226, "Dynamic table >4GB issue".
mysql-test/r/variables.result:
Restricted myisam_data_pointer_size back to 7.
mysql-test/t/variables.test:
Restricted myisam_data_pointer_size back to 7.
sql/mysqld.cc:
Restricted myisam_data_pointer_size back to 7.
Fixed wrong allocation that could cause buffer overrun when using join cache
myisam/mi_open.c:
Fixed indentation
mysql-test/r/lowercase_table2.result:
Drop tables and databases used in the test
mysql-test/t/lowercase_table2.test:
Drop tables and databases used in the test
mysys/my_fopen.c:
Cleanup of comments and parameter names
Simple optimization
Removed compiler warnings
sql/field.cc:
Fixed wrong allocation that could cause buffer overrun
sql/mysqld.cc:
Removed not needed code
sql/set_var.cc:
Simply code
sql/sql_select.cc:
Use int2store/int2korr to store length of cached VARCHAR fields
(Not dependent on type and faster code as we avoid one possible call)
which the query contained more words than we allocated space. (Bug #7858)
myisam/ft_boolean_search.c:
Fix calculation of max number of elements -- "words" may not have spaces
between them.
mysql-test/t/fulltext.test:
Modify test to be specific to reported bug (fix for old bug wasn't quite enough)
mysql-test/r/fulltext.result:
Update results
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.
myisam/mi_open.c:
store name (not symlinked resolved) instead of org_name (symlink resolved)
in info.
Fix instead wrong call to ha_key_cmp
This is related to bug #10741 Inserting double value into utf8 column crashes server
myisam/mi_key.c:
Revert Bar's fix as this causes changes in the key tree that could cause incompatibilites
myisam/mi_rnext_same.c:
Fixed wrong arguments to ha_key_cmp()
This caused a compare to fail if we first found a key with end space and then same key without end space
mysql-test/r/ctype_utf8.result:
Additional test
mysql-test/t/ctype_utf8.test:
Additional test
produces invalid query results
mi_key.c:
well_formed_length should be executed before space trimming, not after.
ctype_utf8.test:
ctype_utf8.result:
adding test.
myisam/mi_key.c:
Bug#10253: ompound index length and utf8 char set produces invalid query results
well_formed_length should be executed before space trimming, not after.
mysql-test/r/ctype_utf8.result:
adding test.
adding test.
mysql-test/t/ctype_utf8.test:
adding test.
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.
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
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
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