(ok'd by CTO to fix it in 4.0).
Fix to make mysql-test-run work with all Valgrind versions.
mysql-test/mysql-test-run.sh:
fixing mysql-test-run.sh so that it works indifferently with Valgrind 1.x, 2.x
(versions <= 2.0.0 refuse --tool option; versions >=2.1.2 require it; 2.1.0 accepts it).
I hope the shell code is portable enough; anyway Valgrind only runs on Linux...
I tested it with 2.0.0, 2.1.0, 2.1.2.
mysql-test/r/truncate.result:
result update
mysql-test/t/truncate.test:
testing if TRUNCATE resets autoinc counter for temp tables (BUG#5033); testing difference with DELETE FROM.
sql/sql_delete.cc:
in mysql_truncate(), always reset the autoinc counter, as manual says (even if it's a temp table, which was BUG#5033).
mysql-test/r/variables.result:
Test case for BUG#5135, check that setting log_warnings actually works.
mysql-test/t/variables.test:
Test case for BUG#5135, check that setting log_warnings actually works.
sql/mysqld.cc:
Set a max value for log_warnings, so se can set it to something other than 0.
Added test case for bug #4256.
join_outer.result:
Fixed bug #4256.
item_cmpfunc.h:
Fixed inconsistency of values of used_tables_cache and
const_item_cache for Item_func_isnull objects.
This inconsistency caused bug #4256.
sql/item_cmpfunc.h:
Fixed inconsistency of values of used_tables_cache and
const_item_cache for Item_func_isnull objects.
This inconsistency caused bug #4256.
mysql-test/r/join_outer.result:
Fixed bug #4256.
mysql-test/r/null.result:
Added test case for bug #4256.
mysql-test/t/null.test:
Added test case for bug #4256.
in a deadlock-free manner. This splits locking the global read lock in two steps.
This fixes a consequence of this bug, known as:
BUG#4953 'mysqldump --master-data may report incorrect binlog position if using InnoDB'
And a test.
sql/handler.cc:
making COMMIT wait if FLUSH TABLES WITH READ LOCK happened.
sql/lock.cc:
an additional stage so that FLUSH TABLES WITH READ LOCK blocks COMMIT:
make_global_read_lock_block_commit():
taking the global read lock is TWO steps (2nd step is optional; without
it, COMMIT of existing transactions will be allowed):
lock_global_read_lock() THEN make_global_read_lock_block_commit().
sql/mysql_priv.h:
new argument to wait_if_global_read_lock()
sql/sql_class.h:
THD::global_read_lock now an uint to reflect the 2 steps of global read lock (does not block COMMIT / does)
sql/sql_db.cc:
update for new prototype
sql/sql_parse.cc:
implementing the two steps of global read lock so that FLUSH TABLES WITH READ LOCK can block COMMIT without deadlocking with COMMITs.
innobase_mysql_tmpfile(): call dup() and my_close() on the file
returned by create_temp_file()
in order to avoid memory leak caused by my_open() being paired with close()
sql/ha_innodb.cc:
innobase_mysql_tmpfile(): call dup() and my_close() on the file
returned by create_temp_file()
in order to avoid memory leak caused by my_open() being paired with close()
Removed improper casts.
Thanks to Joerg Bruehe for the fix.
include/my_global.h:
Build bug on 64-Bit platforms.
Removed improper casts.
Changed to uniform writing style.
Appended 'L' to 32-Bit constants which doesn't hurt on 32-Bit,
but can be important for some 64-Bit compilers.
my_getopt.c:
Moved the inclusion of my_getopt.h down below the inclusion of my_sys.h so that enum loglevel definition would be available
my_sys.h, my_getopt.h:
moved definition of enum loglevel from my_getopt.h to my_sys.h
include/my_getopt.h:
moved definition of enum loglevel from my_getopt.h to my_sys.h
include/my_sys.h:
moved definition of enum loglevel from my_getopt.h to my_sys.h
mysys/my_getopt.c:
Moved the inclusion of my_getopt.h down below the inclusion of my_sys.h so that enum loglevel definition would be available
mysqld.cc:
Changed LOGLEVEL enum to loglevel
mysql_priv.h, log.cc:
Changed LOGLEVEL to loglevel. Removed startup_ from some of the DBUG_ENTER macros. Removed the print_msg_to_log function as it was unused.
my_getopt.c, my_getopt.h:
Renamed LOGLEVEL to loglevel to match coding standards
include/my_getopt.h:
Renamed LOGLEVEL to loglevel to match coding standards
mysys/my_getopt.c:
Renamed LOGLEVEL to loglevel to match coding standards
sql/log.cc:
Changed LOGLEVEL to loglevel. Removed startup_ from some of the DBUG_ENTER macros. Removed the print_msg_to_log function as it was unused.
sql/mysql_priv.h:
Changed LOGLEVEL to loglevel. Removed startup_ from some of the DBUG_ENTER macros. Removed the print_msg_to_log function as it was unused.
sql/mysqld.cc:
Changed LOGLEVEL enum to loglevel
sql/sql_class.h:
comment
sql/sql_table.cc:
smarter use of the Disable_binlog object (using a block so that when leaving it either way, the object gets
destroyed and so properties of the thread get reset).
replacing the no_log argument of mysql_create_table() by some safer method
(temporarily setting OPTION_BIN_LOG to 0) which guarantees that even the automatic
DELETE FROM heap_table does not get into the binlog when a not-yet-existing HEAP table
is opened by mysql_create_table().
mysql-test/r/rpl_heap.result:
result update
mysql-test/t/rpl_heap.test:
testing a bug
sql/log.cc:
new class Disable_binlog used to temporarily disable binlogging for one thread.
sql/mysql_priv.h:
removing argument no_log from mysql_create_table(); no_log was perfect as some
binlogging could still be done by open_unireg_entry() for a HEAP table.
sql/sql_class.h:
new class Disable_binlog used to temporarily disable binlogging for one thread.
sql/sql_parse.cc:
removing no_log
sql/sql_table.cc:
removing no_log from mysql_create_table(); instead using new class Disable_binlog.
Disabling binlogging in some cases, where the binlogging is done later by some other code
(case of CREATE SELECT and ALTER).
mysqld.cc:
Changed option_error_reporter to match new function header that includes LOGLEVEL enum
mysql_priv.h:
Removed the MY_ERROR style bitmask. Changed function headers to use new LOGLEVEL enum
log.cc:
Changed print_buffer_to_log to print_buffer_to_file. Remove the timestamp bool and now all log entries written to stderr are timestamped. Removed some unused commented code. changed to use the new LOGLEVEL enum.
my_getopt.c:
Changed functions to use the new LOGLEVEL enum and changed the included error reporter to be default_reporter. This reporter is used in handle_options if a reporter is not given
my_getopt.h:
changed typedefs to use better naming convention. Moved error bitmask into the LOGLEVEL enum and included it here.
include/my_getopt.h:
changed typedefs to use better naming convention. Moved error bitmask into the LOGLEVEL enum and included it here.
mysys/my_getopt.c:
Changed functions to use the new LOGLEVEL enum and changed the included error reporter to be default_reporter. This reporter is used in handle_options if a reporter is not given
sql/log.cc:
Changed print_buffer_to_log to print_buffer_to_file. Remove the timestamp bool and now all log entries written to stderr are timestamped. Removed some unused commented code. changed to use the new LOGLEVEL enum.
sql/mysql_priv.h:
Removed the MY_ERROR style bitmask. Changed function headers to use new LOGLEVEL enum
sql/mysqld.cc:
Changed option_error_reporter to match new function header that includes LOGLEVEL enum
Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
mysqld.cc, ha_innodb.cc:
Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
sql/ha_innodb.cc:
Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
sql/mysqld.cc:
Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
innobase/include/srv0start.h:
Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
innobase/include/ut0dbg.h:
Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
innobase/ut/ut0dbg.c:
Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
innobase/ut/ut0mem.c:
Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
innobase/srv/srv0start.c:
Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
that was a forgotten '~' probably.
libmysql/libmysql.c:
When we read "disable-local-infile" from the option file specified by mysql_options(MYSQL_READ_DEFAULT_FILE),
we must take CLIENT_LOCAL_FILES down (it was probably a forgotten '~').
The binlog files we use for some tests must be installed like other mysql-test/std_data/ files.
mysql-test/Makefile.am:
The binlog files we use for some tests must be installed like other mysql-test/std_data/ files.
Putting a * before 001 so that it works for 6-digit extensions of 4.1.
Added declarations for print_msg_to_log and vprint_msg_to_log. sql_print_error are simple functions that wrap calls to print_msg_to_log. Define the different error types with MY_ERROR_TYPE, MY_WARNING_TYPE, and MY_INFORMATION_TYPE
gen_lex_hash.cc:
Added NULL error reporting parameter to handle_options
log.cc:
Add print_msg_to_log, print_buffer_to_log, and vprint_msg_to_log. Print_msg_to_log will write the message to the windows event log if on NT. We now have error, warning, and information versions of sql_print_xxxx. T his is a variation of a similar changeset WAX did.
mysqld.cc:
Added option_error_reporter callback function and pass that into handle_options
mysql.cc:
Added NULL as error reporter arg to the end of handle_options
Many files:
Added NULL error reporter parameter as the last paramter to handle_options
my_getopt.c:
Added second function pointer to server as an error reporting callback. Added local function report_option_error that will either write the error to stderr or to the error reporting callback. changed all calls in handle_options from fprintf(stderr, ... ) to report_option_error
my_getopt.h:
Changed declaration of handle_options to use typedefs for the two function pointers. added second function pointer to server as an error reporting callback
mysqld.dsp:
Added custom build step for compiling message file and added message resource file (output of mc)
VC++Files/sql/mysqld.dsp:
Added custom build step for compiling message file and added message resource file (output of mc)
client/mysqladmin.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlcheck.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqldump.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlimport.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlmanager-pwgen.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlmanagerc.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlbinlog.cc:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlshow.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqltest.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/my_print_defaults.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/mysql_install.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/mysql_waitpid.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/perror.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/resolve_stack_dump.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/resolveip.c:
Added NULL error reporter parameter as the last paramter to handle_options
isam/isamchk.c:
Added NULL error reporter parameter as the last paramter to handle_options
isam/pack_isam.c:
Added NULL error reporter parameter as the last paramter to handle_options
myisam/mi_test1.c:
Added NULL error reporter parameter as the last paramter to handle_options
myisam/myisam_ftdump.c:
Added NULL error reporter parameter as the last paramter to handle_options
myisam/myisamchk.c:
Added NULL error reporter parameter as the last paramter to handle_options
myisam/myisampack.c:
Added NULL error reporter parameter as the last paramter to handle_options
include/my_getopt.h:
Changed declaration of handle_options to use typedefs for the two function pointers. added second function pointer to server as an error reporting callback
mysys/my_getopt.c:
Added second function pointer to server as an error reporting callback. Added local function report_option_error that will either write the error to stderr or to the error reporting callback. changed all calls in handle_options from fprintf(stderr, ... ) to report_option_error
tools/mysqlmanager.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysql.cc:
Added NULL as error reporter arg to the end of handle_options
sql/mysqld.cc:
Added option_error_reporter callback function and pass that into handle_options
sql/log.cc:
Add print_msg_to_log, print_buffer_to_log, and vprint_msg_to_log. Print_msg_to_log will write the message to the windows event log if on NT. We now have error, warning, and information versions of sql_print_xxxx. T his is a variation of a similar changeset WAX did.
sql/gen_lex_hash.cc:
Added NULL error reporting parameter to handle_options
sql/mysql_priv.h:
Added declarations for print_msg_to_log and vprint_msg_to_log. sql_print_error are simple functions that wrap calls to print_msg_to_log. Define the different error types with MY_ERROR_TYPE, MY_WARNING_TYPE, and MY_INFORMATION_TYPE
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Fix bug: if we RENAME a table, InnoDB forgot to load the foreign key constraints that reference the new table name, and forgot to check that they are compatible with the table
innobase/row/row0mysql.c:
Fix bug: if we RENAME a table, InnoDB forgot to load the foreign key constraints that reference the new table name, and forgot to check that they are compatible with the table
Adding a compilation define so that on recent Darwin mysqld does not react to SIGHUP and SIGQUIT:
this fixes a rpl000001 problem on our Powermac G5 machine (popping after an upgrade from 10.3.4 to
10.3.5) and is expected to fix
BUG#2030 "relay bin log on slave resets multiple times a second"
(i.e. under some Mac OS X Panther versions, mysqld receives many SIGHUP and SIGQUIT).
So this fix is more a problem-hider than a real understanding of why mysqld receives so many signals.
Note that we saw other problems on this OS where mysqld reacts to Ctrl-Z but apparently only once,
where using SSL seems to make the problem more frequent...
configure.in:
Escaping [] so that darwin[7-8] gets into 'configure' and not darwin7-8
Adding a compilation define so that on recent Darwin mysqld does not react to SIGHUP and SIGQUIT.
sql/mysqld.cc:
optionally ignore SIGHUP and SIGQUIT, for some Mac OS X Panther versions which send too many of those.