client/mysqlbinlog.cc:
Now my_end() deallocates DBUG by default, but that fails in mysqlbinlog
because of global destructors that use DBUG.
dbug/dbug.c:
Add a facility to deallocate the debug stack, to avoid memory leak warnings
in Valgrind.
include/my_dbug.h:
Add a facility to deallocate the debug stack, to avoid memory leak warnings
in Valgrind.
include/my_sys.h:
Change my_end() to deallocate DBUG memory by default (can be disabled with
MY_DONT_FREE_DBUG option).
libmysql/libmysql.c:
Do not deallocate DBUG during cleanup.
mysys/my_init.c:
Change my_end() to deallocate DBUG memory by default (can be disabled with
MY_DONT_FREE_DBUG option).
sql/mysqld.cc:
Add missing my_thread_end() call, seems to occasionally trigger a memory
leak (not repeatable).
VC++Files/mysql.sln:
mysql_client_test depends on mysys.
VC++Files/mysys/mysys.vcproj:
Add new file missing in previous push.
mysys/my_memmem.c:
Fix illegal pointer arithmetics on void *.
tests/Makefile.am:
-L must go before -l
tests/mysql_client_test.c:
No declarations after statement in C code.
Bug#17667: An attacker has the opportunity to bypass query logging.
This adds a new, local-only printf format specifier to our *printf functions
that allows us to print known-size buffers that must not be interpreted as
NUL-terminated "strings."
It uses this format-specifier to print to the log, thus fixing this
problem.
include/my_sys.h:
Add prototype for my_memmem() .
mysys/Makefile.am:
Add reference to new file, my_memmem.c
mysys/mf_iocache2.c:
Add a "%.1234b" and "%.*b" percent-code. It takes a width, just like "%s",
but unlike the string-indicator, it requires the width and doesn't stop printing
at NUL characters.
Also, simplify the code a bit.
TODO: This code should be unified with the strings/my_vnsprintf.c code in
the future.
sql/sql_parse.cc:
The query is not a C-string, but is a sized buffer, containing any character
at all, which may include NUL characters.
strings/my_vsnprintf.c:
Add a "%.1234b" and "%.*b" percent-code. It takes a width, just like "%s",
but unlike the string-indicator, it requires the width and doesn't stop printing
at NUL characters.
tests/Makefile.am:
We may need some of our local functions.
tests/mysql_client_test.c:
Add a "%.1234b" and "%.*b" percent-code. It takes a width, just like "%s",
but unlike the string-indicator, it requires the width and doesn't stop printing
at NUL characters.
mysql-test/t/mysql_client_test.opt:
New BitKeeper file ``mysql-test/t/mysql_client_test.opt''
Add '--log' server parameter.
mysys/my_memmem.c:
New BitKeeper file ``mysys/my_memmem.c''
Implement memmem, a black-box work-alike of the GNU memmem(), which functions
like strstr() but for arbitrary blocks of memory.
Updating data in HEAP table with BTREE index results in wrong index_length
counter value, which keeps growing after each update.
When inserting new record into tree counter is incremented by:
sizeof(TREE_ELEMENT) + key_size + tree->size_of_element
But when deleting element from tree it doesn't decrement counter by key_size:
sizeof(TREE_ELEMENT) + tree->size_of_element
This fix makes accurate allocated memory counter for tree. That is
decrease counter by key_size when deleting tree element.
heap/hp_delete.c:
Added size of the key to tree_delete() for accurate allocated memory counter.
include/my_tree.h:
Added size of the key to tree_delete() for accurate allocated memory counter.
myisam/myisamlog.c:
Added size of the key to tree_delete() for accurate allocated memory counter.
mysql-test/r/heap_btree.result:
Testcase for BUG#18160.
mysql-test/t/heap_btree.test:
Testcase for BUG#18160.
mysys/tree.c:
Added size of the key to tree_delete() for accurate allocated memory counter.
Note that this size is optional. If one doesn't need precise counter it is safe
to pass 0 as key_size.
The bug caused a reported index corruption in the cases when
key_cache_block_size was not a multiple of myisam_block_size,
e.g. when key_cache_block_size=1536 while myisam_block_size=1024.
mysql-test/r/key_cache.result:
Added a test case for bug #19079.
mysql-test/t/key_cache.test:
Added a test case for bug #19079.
- Improved solution by adding an else stetment so that do find next is avoided if erorr occurs, but we still return zero files found instaed of an error
mysys/my_lib.c:
Add else statment so that if a directory can't be read because of access denied it will be skipped and zero files returned.
Use strnmov instead of strmov to avoid writing after end of buffer
- Grab the path from "configure --sysconfdir=<path>" and set it as
the first place to look for my.cnf files
Do this both in Makefiles for libmysql and mysys
- Patch provided by Francesco Riosa. Thank you!
libmysql/Makefile.shared:
Grab the path from "--sysconfdir=<path>" into the defined variable DEFAULT_SYSYCONFDIR
mysys/Makefile.am:
Grab the path from "--sysconfdir=<path>" into the defined variable DEFAULT_SYSYCONFDIR
mysys/default.c:
Use DEFAULT_SYSCONFDIR as first place to look for my.cnf file if "--sysconfdir=<path>" been specified as argument to configure
- Make the windows implementation of 'my_dir' behave like the default implementation
mysys/my_lib.c:
If 'findfirst' returns EINVAL, just continue and return 0 files to read in this dir.
(Needed for "list of pushes" web page and autopush)
include/mysql.h:
Fix to embedded server to be able to run tests on it
libmysql/libmysql.c:
Fix to embedded server to be able to run tests on it
libmysqld/emb_qcache.cc:
Fix to embedded server to be able to run tests on it
libmysqld/embedded_priv.h:
Fix to embedded server to be able to run tests on it
libmysqld/lib_sql.cc:
Fix to embedded server to be able to run tests on it
libmysqld/libmysqld.c:
Fix to embedded server to be able to run tests on it
mysql-test/mysql-test-run.sh:
Fix to embedded server to be able to run tests on it
mysql-test/r/binlog.result:
Updated test for embedded server
mysql-test/r/ctype_cp932.result:
Updated test for embedded server
mysql-test/r/innodb.result:
Updated test for embedded server
mysql-test/r/mysqltest.result:
Updated test for embedded server
mysql-test/r/query_cache.result:
Updated test for embedded server
mysql-test/r/query_cache_notembedded.result:
Updated test for embedded server
mysql-test/r/sp-error.result:
Updated test for embedded server
mysql-test/r/sp.result:
Updated test for embedded server
mysql-test/r/subselect.result:
Updated test for embedded server
mysql-test/r/view.result:
Updated test for embedded server
mysql-test/r/view_grant.result:
Updated test for embedded server
mysql-test/t/backup.test:
Updated test for embedded server
mysql-test/t/binlog.test:
Updated test for embedded server
mysql-test/t/blackhole.test:
Updated test for embedded server
mysql-test/t/compress.test:
Updated test for embedded server
mysql-test/t/ctype_cp932.test:
Updated test for embedded server
mysql-test/t/delayed.test:
Updated test for embedded server
mysql-test/t/handler.test:
Updated test for embedded server
mysql-test/t/innodb.test:
Updated test for embedded server
mysql-test/t/mysql.test:
Updated test for embedded server
mysql-test/t/mysql_client_test.test:
Updated test for embedded server
mysql-test/t/mysqltest.test:
Updated test for embedded server
mysql-test/t/query_cache.test:
Updated test for embedded server
mysql-test/t/query_cache_notembedded.test:
Updated test for embedded server
mysql-test/t/read_only.test:
Updated test for embedded server
mysql-test/t/skip_grants.test:
Updated test for embedded server
mysql-test/t/sp-destruct.test:
Updated test for embedded server
mysql-test/t/sp-error.test:
Updated test for embedded server
mysql-test/t/sp-threads.test:
Updated test for embedded server
mysql-test/t/sp.test:
Updated test for embedded server
mysql-test/t/subselect.test:
Updated test for embedded server
mysql-test/t/temp_table.test:
Updated test for embedded server
mysql-test/t/view.test:
Updated test for embedded server
mysql-test/t/view_grant.test:
Updated test for embedded server
mysql-test/t/wait_timeout.test:
Updated test for embedded server
mysys/mf_dirname.c:
Review fix: Don't access data outside of array
mysys/my_bitmap.c:
Remove compiler warnings
scripts/mysql_fix_privilege_tables.sql:
Add flush privileges to .sql script so that one doesn't have to reboot mysqld when one runs the mysql_fix_privilege_script
sql-common/client.c:
Updated test for embedded server
sql/item.cc:
Remove DBUG_PRINT statement that can cause crashes when running with --debug
sql/mysqld.cc:
Fix to embedded server to be able to run tests on it
sql/protocol.cc:
Fix to embedded server to be able to run tests on it
(Trivial reconstruction of code)
sql/protocol.h:
Fix to embedded server to be able to run tests on it
sql/sql_base.cc:
Better comment
sql/sql_class.cc:
Fix to embedded server to be able to run tests on it
sql/sql_class.h:
Fix to embedded server to be able to run tests on it
sql/sql_cursor.cc:
Fix to embedded server to be able to run tests on it
sql/sql_parse.cc:
Fix to embedded server to be able to run tests on it
Don't crash for disabled commands when using embedded server
sql/sql_prepare.cc:
Fix to embedded server to be able to run tests on it
mysql-test/r/ctype_cp932_notembedded.result:
New BitKeeper file ``mysql-test/r/ctype_cp932_notembedded.result''
mysql-test/r/innodb_notembedded.result:
New BitKeeper file ``mysql-test/r/innodb_notembedded.result''
mysql-test/r/sp.result.orig:
New BitKeeper file ``mysql-test/r/sp.result.orig''
mysql-test/r/sp_notembedded.result:
New BitKeeper file ``mysql-test/r/sp_notembedded.result''
mysql-test/r/subselect_notembedded.result:
New BitKeeper file ``mysql-test/r/subselect_notembedded.result''
mysql-test/t/ctype_cp932_notembedded.test:
New BitKeeper file ``mysql-test/t/ctype_cp932_notembedded.test''
mysql-test/t/innodb_notembedded.test:
New BitKeeper file ``mysql-test/t/innodb_notembedded.test''
mysql-test/t/sp.test.orig:
New BitKeeper file ``mysql-test/t/sp.test.orig''
mysql-test/t/sp_notembedded.test:
New BitKeeper file ``mysql-test/t/sp_notembedded.test''
mysql-test/t/subselect_notembedded.test:
New BitKeeper file ``mysql-test/t/subselect_notembedded.test''
A wrong cast led to numeric overflow for data files
greater than 4GB. The parallel repair assumed end of
file after reading the amount of data that the file
was bigger than 4GB. It truncated the data file and
noted the number of records it found so far in the
index file header as the number of rows in the table.
Removing the cast fixed the problem.
I added some cosmetic changes too.
The normal repair worked because it uses a different
function to read from the data file.
mysys/mf_iocache.c:
Bug#11527 - Setting myisam_repair_threads to >1 leads to corruption
The pure fix was to remove a cast from a file offset difference.
Supplemented this with warnings in function comments,
a change from == to <= to be slightly more safe,
a renaming from "read_len" to "left_length" to make the
partial code duplication between _my_b_read() and _my_b_read_r()
more obvious and easier to compare the functions,
removed another unnecessary (but harmless) cast,
and fixed coding sytle around the "left_length" changes.
- Set the value of mp->thread before mp->count to avoid race condition.
mysys/thr_mutex.c:
Set mp->thread before mp->count is changed.
Since mp->count is used in the macros 'safe_mutex_assert_not_owner' and
'safe_mutex_assert_owner' as an inidicator wheter to look at the mp->thread
variable or not. This means that when mp->count is changed, the mp->thread
should akready be set to the owning thread.
Also set mp->thread to 0 when unlocking the mutex.
to skip directories which are not allowed for read
mysql-test/r/information_schema.result:
Fix for bug#15851 Unlistable directories yield no info from information_schema
test result
mysql-test/t/information_schema.test:
Fix for bug#15851 Unlistable directories yield no info from information_schema
test case
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
client/mysqldump.c:
Auto merged
sql/field.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
rename sha1_* to mysql_sha1_*
include/sha1.h:
rename sha1_* to mysql_sha1_*
mysys/sha1.c:
rename sha1_* to mysql_sha1_*
sql/item_strfunc.cc:
rename sha1_* to mysql_sha1_*
sql/password.c:
rename sha1_* to mysql_sha1_*
sql/field.cc:
Auto merged
sql/item.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_handler.cc:
ur
into mysql.com:/opt/local/work/mysql-5.0-merge
mysys/hash.c:
Auto merged
ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
Auto merged
sql/lock.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_acl.cc:
Manual merge.
sql/sql_base.cc:
Manual merge.
when high concurrency": remove HASH::current_record and make it
an external search parameter, so that it can not be the cause of a
race condition under high concurrent load.
The bug was in a race condition in table_hash_search,
when column_priv_hash.current_record was overwritten simultaneously
by multiple threads, causing the search for a suitable grant record
to fail.
No test case as the bug is repeatable only under concurrent load.
include/hash.h:
- remove current_record from HASH, instead modify hash_first,
hash_next to accept HASH_SEARCH_STATE as an IN/OUT parameter
mysys/hash.c:
- remove HASH::current_record
- change declarations of functions that use HASH in read-only mode
to accept const HASH * instead of HASH *.
- implement hash_search; move the old implementation of hash_search
to hash_first
mysys/testhash.c:
- adjust the test case to changed function declarations
sql/lock.cc:
- adjust to changed declarations of hash_search, hash_next
sql/sql_acl.cc:
- adjust to changed declarations of hash_search, hash_next
sql/sql_base.cc:
- adjust to changed declarations of hash_search, hash_nex
sql/sql_cache.cc:
- adjust to a changed declaration of hash_replace
myisam/mi_delete.c:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_db.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
test for LONGLONG_MIN in decimal.c
myisam/mi_create.c:
lock THR_LOCK_myisam later
mysys/thr_alarm.c:
remove misplaced comment and "safety" if()
server-tools/instance-manager/instance.cc:
add unlock
strings/decimal.c:
correct the test for LONGLONG_MIN. fix debug sprintf
several times, it was causing corruption of charset data stored in once_mem_pool.
my_end() deallocated once_mem pool, but did not put a flag that charsets have
to be reloaded. The fix addresses this problem.
several times, it was causing corruption of charset data stored in once_mem_pool.
my_end() deallocated once_mem pool, but did not put a flag that charsets have
to be reloaded. The fix addresses this problem.
my_sopen() on win32 which allows to use FILE_SHARE_DELETE flag to
allow deleting opened files. my_sopen() implementation is added to
support this functionality.
include/my_global.h:
Fixes bug #13377. Added number of constants for share delete file
open option.
include/my_sys.h:
Fixes bug #13377. Added my_sopen function.
mysys/my_create.c:
Fixes bug #13377. my_create() function changed to use my_sopen() and which allows
to use FILE_SHARE_DELETE flag on win32, which helps in deleting opened files.
mysys/my_open.c:
Fixes bug #13377. my_open() function changed to use my_sopen() on win32
which allows to use FILE_SHARE_DELETE flag to allow deleting opened files.
sql/log.cc:
Fixes bug #13377. Additional patch - remove reference counting for
opened binlog files, introduced in initial patch of #13377.
sql/sql_class.h:
Fixes bug #13377. Additional patch - remove reference counting for
opened binlog files, introduced in initial patch of #13377.
sql/sql_repl.cc:
Fixes bug #13377. Additional patch - remove reference counting for
opened binlog files, introduced in initial patch of #13377.
mysys/base64.c:
At least one compiler don't like to use casted
void* var in address calculation, assign void*
var to char* var and use that one instead.
1. Made sure that base64 string is terminated with NUL.
2. Made calculation of needed size for base64 string exact.
Added checks in test for the above two fixes.
mysys/base64.c:
Made sure that base64 string is terminated with NUL.
Made calculation of needed size for base64 string exact.
Added checks in test for the above two fixes.
mysql-test/r/insert_select.result:
Merge from 4.1 to 5.0.
mysql-test/r/select.result:
Merge from 4.1 to 5.0.
mysql-test/t/insert_select.test:
Merge from 4.1 to 5.0.
mysys/my_handler.c:
Merge from 4.1 to 5.0.
sql/item.cc:
Merge from 4.1 to 5.0.
sql/item_timefunc.cc:
Imported bug fix from 4.1 to 5.0. (Bug#14016)
sql/item_timefunc.h:
Imported bug fix from 4.1 to 5.0. (Bug#14016)
into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0-tmp
heap/_check.c:
Auto merged
heap/hp_create.c:
Auto merged
include/config-netware.h:
Auto merged
include/my_base.h:
Auto merged
include/my_handler.h:
Auto merged
include/myisam.h:
Auto merged
innobase/include/Makefile.am:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_delete.c:
Auto merged
myisam/mi_rnext_same.c:
Auto merged
myisam/mi_search.c:
Auto merged
myisam/mi_write.c:
Auto merged
myisam/myisamdef.h:
Auto merged
myisam/sort.c:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/r/update.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
mysql-test/t/select.test:
Auto merged
mysql-test/t/update.test:
Auto merged
mysys/my_getopt.c:
Auto merged
mysys/my_handler.c:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/records.cc:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/structs.h:
Auto merged
strings/conf_to_src.c:
Auto merged
strings/ctype-win1250ch.c:
Auto merged
Makefile.am:
Merged from 4.1
myisam/myisamchk.c:
Merged from 4.1
mysql-test/mysql-test-run.pl:
Merged from 4.1
mysql-test/r/insert_select.result:
Merged from 4.1
mysql-test/r/myisam.result:
Merged from 4.1
mysql-test/r/select.result:
Merged from 4.1
mysql-test/t/insert_select.test:
Merged from 4.1
mysql-test/t/myisam.test:
Merged from 4.1
netware/mysql_test_run.c:
Merged from 4.1
sql/item.cc:
Merged from 4.1
sql/mysqld.cc:
Merged from 4.1
sql/sql_update.cc:
Merged from 4.1
tests/mysql_client_test.c:
Merged from 4.1
options to the wrong value. (Bug #12925)
mysql-test/t/mysql_client_test.test:
Add parameter for testing getopt bug
mysys/my_getopt.c:
Remove incorrect and unnecessary casts
tests/mysql_client_test.c:
Add test case for Bug #12925 (my_getopt bug)