DO NOT COPY THIS CODE TO 4.0. The bugfix is better in 4.0,
but here in 3.23 we don't want to add a new error code so
we just use ER_EMPTY_QUERY. Bug was:
"If a query was ignored on the slave (because of
@code{replicate-ignore-table} and other similar rules), the slave
still checked if the query got the same error code (0, no error) as on
the master. So if the master had an error on the query (for example,
``Duplicate entry'' in a multiple-row insert), then the slave stopped
and warned that the error codes didn't match. (Bug #797)"
sql/slave.cc:
Ignore ER_EMPTY_QUERY as it is also a marker for "query was ignored because
of replicate-*-table rules".
sql/sql_parse.cc:
In a slave thread, mark an ignored query (because of replicate-*-table rules)
as empty. The caller, exec_event(), will understand this error code as "ignorable
query, don't compare the error codes on master and slave".
repository (incredible that I forgot to push, but why not).
So unfortunately the bugfix missed 3.23.57 and will be in .58 :(
Instead of looking like working (bug #198), replication between
a 3.23 slave and 4.0 master should frankly stop. Here we detect
4.0 masters in the 3.23 slave code when we see a strange Rotate
event, and in that case we print an error and stop.
4.0.13 and older masters will be "often" caught (see the patch); 4.0.14
and newer masters will always be immediately caught.
sql/slave.cc:
Instead of looking like working (bug #198), replication between
a 3.23 slave and 4.0 master should frankly stop. Here we detect
4.0 masters in the 3.23 slave code when we see a strange Rotate
event, and in that case we print an error and stop.
4.0.13 and older masters will be "often" caught (see the patch); 4.0.14
and newer masters will always be immediately caught.
Fixed problem with not freed thr_alarm() on slave connect
mysql-test/t/rpl_alter.test:
Changed name of created test database
sql/ha_innobase.cc:
Changed innobase_flush_log_at_trx_commit to be 1 as default
sql/mini_client.cc:
Fixed problem with not freed thr_alarm()
sql/mysqld.cc:
Allocate some extra thr_alarm slots just to be safe
sql/slave.cc:
Simple code cleanup
logged, but read as LOAD DATA INFILE REPLACE"
This was just bad && instead of &, but nasty consequences.
This should be merged to 4.0 BUT it will not be automatic (some code
has moved from log_event.h to log_event.cc, and log_event.cc has changed);
please Merging Man, do 'bk grep REPLACE_FLAG' in 4.0/sql
to find all the new places.
sql/log_event.cc:
& instead of && when testing flags
sql/slave.cc:
& instead of && when testing flags
Fixed memory leak when replication restarts in debug mode
include/my_sys.h:
Added option to not overwrite files to my_copy()
mysql-test/mysql-test-run.sh:
Fixed --ddd option
Fixed that mysqld is restarted if there is a testname-master.sh file
mysql-test/r/backup.result:
Update for security fix in BACKUP TABLE
mysql-test/t/backup.test:
Update for security fix in BACKUP TABLE
mysys/my_copy.c:
Added option to not overwrite files to my_copy()
sql/ha_myisam.cc:
Don't allow BACKUP TABLE to overwrite files
sql/slave.cc:
Fixed problem with --debug output from 'handle_slave'
Fixed memory leak when replication restarts in debug mode
This fixes a possible core dump problem in SHOW PROCESSLIST
sql/slave.cc:
Only set thd->query to 0 if LOCK_thread_count is hold
sql/sql_db.cc:
Only set thd->query to 0 if LOCK_thread_count is hold
Also first set query_length, then query
sql/sql_parse.cc:
Indentation changes
Added missing mutex-lock around critical section in GRANT handling.
Docs/manual.texi:
ChangeLog
sql/lock.cc:
Change name -> alias in TABLE_LIST.
sql/slave.cc:
Change name -> alias in TABLE_LIST.
sql/sql_acl.cc:
Added missing mutex-lock around critical section in GRANT handling.
Changed name -> alias
sql/sql_base.cc:
Change name -> alias in TABLE_LIST.
sql/sql_insert.cc:
Change name -> alias in TABLE_LIST.
sql/sql_parse.cc:
Change name -> alias in TABLE_LIST.
sql/sql_show.cc:
Change name -> alias in TABLE_LIST.
sql/sql_table.cc:
Change name -> alias in TABLE_LIST.
sql/sql_udf.cc:
Change name -> alias in TABLE_LIST.
sql/table.h:
Change name -> alias in TABLE_LIST.
tests/grant.pl:
Fixed grant test
Docs/manual.texi:
Changelog
sql/gen_lex_hash.cc:
Merged --verbose option from 4.0
Smaller hash table
sql/slave.cc:
Added some mutex locks to make SLAVE START and SLAVE STOP thread safe.
code cleanup
Docs/manual.texi:
changelog
sql/ha_innobase.cc:
Removed compiler warning
sql/slave.cc:
Cleanup comments and indentation for suppressing connect warnings
sql/sql_db.cc:
clean up comment
sql/sql_delete.cc:
Fix wrong usage of constant which could cause mysqld to use index when doing an update/delete on small tables.
sql/sql_update.cc:
Fix wrong usage of constant which could cause mysqld to use index when doing an update/delete on small tables.
Suppress prints by slave.cc when there is a normal reconnect after the master has been quiet for the time of the net read timeout; this removes the Error 1159 messages many users have complained about in the replication of 3.23.51
sql/slave.cc:
Suppress prints by slave.cc when there is a normal reconnect after the master has been quiet for the time of the net read timeout; this removes the Error 1159 messages many users have complained about in the replication of 3.23.51
Slave thread is always in an auto-commit state: remove unnecessary tests when we flush master info
sql/slave.cc:
Slave thread is always in an auto-commit state: remove unnecessary tests when we flush master info
Do not flush the position to master.info file if we have a transaction open
sql/slave.cc:
Do not flush the position to master.info file if we have a transaction open
sql/slave.h:
Do not flush the position to master.info file if we have a transaction open
Docs/manual.texi:
fixed bad merge
include/my_bitmap.h:
fixed comment format
mysql-test/r/rpl_get_lock.result:
make the test results predicable
mysql-test/t/rpl_get_lock.test:
predicatable test results
mysys/my_bitmap.c:
do not init/destroy mutex if bitmap is not declared thread safe
sql/slave.cc:
clean-up suggested by Monty to make init_slave_skip_errors() more compact
added extra/mysql_install.c - will work on it in 4.0, but it does not hurt
to have it sit in 3.23 tree for now since it will eventually be backported
to 3.23 anyway
Docs/manual.texi:
documented slave-skip-errors
updated change history
extra/resolve_stack_dump.c:
fixed wrong help message
include/my_bitmap.h:
bitmap code updates
mysql-test/r/rpl_get_lock.result:
test for a possible bug in release_lock() replication
mysql-test/t/rpl_get_lock.test:
test for possible bug in release_lock replication
mysys/my_bitmap.c:
bitmap code updates/clean-up
sql/mysqld.cc:
slave-skip-errors
sql/slave.cc:
slave-skip-errors
sql/slave.h:
slave skip errors
fixed skip counter to do the RightThing (TM) when the user messes up.
Still do RightThing when he gets it right.
mysql-test/r/rpl000016.result:
updated test result
mysql-test/t/rpl000013.test:
test alias bug
mysql-test/t/rpl000016.test:
test for proper skip when the user messes up
sql/slave.cc:
proper skip even when the user goofs up
sql/sql_base.cc:
drop real name, not last used alias in the log
mysql-test/t/rpl000001.test:
test for coredump on slave while trying to print aborted query
sql/slave.cc:
do not coredump printing aborted query if it has % in it.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Made replication test portable
Fixed buffer overrun bug in replication
client/Makefile.am:
Fix for make dist
mysql-test/t/rpl000017-slave.sh:
Made replication test portable
sql/slave.cc:
Fixed buffer overrun bug
strings/strmake.c:
More documentation
Fixed some wrong test cases
Docs/manual.texi:
Changelog
extra/perror.c:
Added BDB table errors
include/myisam.h:
Fix for LOAD DATA FROM MASTER when using tables with checksum
myisam/mi_check.c:
Fix for LOAD DATA FROM MASTER when using tables with checksum
mysql-test/mysql-test-run.sh:
Better logging
mysql-test/r/join.result:
Fixed missing results
mysql-test/r/rpl000006.result:
Updated result
mysql-test/t/join.test:
Fixed wrong test
mysql-test/t/rpl000001.test:
Fixed wrong test
mysql-test/t/rpl000006.test:
Cleanup
mysql-test/t/rpl000017-slave.sh:
Fixed too long password
mysql-test/t/rpl000017.test:
Fixed too long password
sql/ha_myisam.cc:
Fix for LOAD DATA FROM MASTER when using tables with checksum
sql/handler.cc:
Unique error for DEADLOCK
sql/slave.cc:
Fix for LOAD DATA FROM MASTER when using tables with checksum
Fix bug in isamlog
Add argument types to function declarations.
Docs/manual.texi:
Updated credits
client/mysql.cc:
Fixes for OS2
client/mysqladmin.c:
Fixes for OS2
client/mysqldump.c:
Fixes for OS2
client/mysqlimport.c:
Fixes for OS2
client/mysqltest.c:
Fixes for OS2
dbug/dbug.c:
Fixes for OS2.
Use new C calling convention.
dbug/factorial.c:
Fixes for OS2.
Use new C calling convention.
include/errmsg.h:
Fix for OS2
include/global.h:
Fixes for OS2.
include/my_pthread.h:
Fixes for OS2.
include/my_sys.h:
Fixes for OS2.
include/mysql_com.h:
Move defines to global.h
include/thr_alarm.h:
Fixes for OS2.
isam/isamchk.c:
Fixes for OS2.
Add arguments to function declarations.
isam/isamlog.c:
Fixes for OS2.
Fix bug in logfile handling.
isam/test1.c:
Add arguments to function decl
isam/test2.c:
Add arguments to function declarations.
isam/test_all.res:
Update result
libmysql/get_password.c:
Fixes for OS2.
libmysql/libmysql.c:
Fixes for OS2.
libmysql/net.c:
Fixes for OS2.
libmysql/violite.c:
Add arguments to function declarations.
merge/_locking.c:
Add argument types to function declarations.
merge/close.c:
Add argument types to function declarations.
merge/create.c:
Add argument types to function declarations.
merge/extra.c:
Add argument types to function declarations.
merge/open.c:
Add argument types to function declarations.
merge/panic.c:
Add argument types to function declarations.
merge/rsame.c:
Add argument types to function declarations.
merge/update.c:
Add argument types to function declarations.
myisam/ft_eval.c:
Portability fix
myisam/ft_search.c:
Portability fix
myisam/ft_test1.c:
Portability fix
myisam/ftdefs.h:
Portability fix
myisam/mi_check.c:
Portability fix
myisam/mi_test1.c:
Portability fix
myisam/mi_test2.c:
Portability fix
myisam/mi_test_all.sh:
Update to test for MACH variable
myisam/myisamlog.c:
Cleanup
myisam/myisampack.c:
Don't use variable 'new'
myisam/sort.c:
Portability fix
myisammrg/myrg_delete.c:
Add argument types to function declarations.
myisammrg/myrg_locking.c:
Add argument types to function declarations.
myisammrg/myrg_open.c:
Add argument types to function declarations.
myisammrg/myrg_panic.c:
Add argument types to function declarations.
mysql-test/t/backup.test:
Fix for OS2
mysql-test/t/show_check.test:
Fix for OS2
mysys/charset.c:
Dont use variable 'new'
mysys/default.c:
Fixes for OS2.
mysys/getopt.c:
Fixes for OS2.
mysys/getopt1.c:
Fixes for OS2.
mysys/list.c:
Don't use variable 'new'
mysys/mf_dirname.c:
Fixes for OS2.
mysys/mf_format.c:
Fixes for OS2.
mysys/mf_path.c:
Fixes for OS2.
mysys/mf_qsort.c:
Portability fix
mysys/mf_tempfile.c:
Fixes for OS2.
mysys/my_clock.c:
Fixes for OS2.
mysys/my_copy.c:
Fixes for OS2.
mysys/my_create.c:
Fixes for OS2.
mysys/my_getwd.c:
Fixes for OS2.
mysys/my_init.c:
Fixes for OS2.
mysys/my_lib.c:
Fixes for OS2.
mysys/my_lock.c:
Fixes for OS2.
mysys/my_malloc.c:
Portability fix
mysys/my_mkdir.c:
Fixes for OS2.
mysys/my_open.c:
Fixes for OS2.
mysys/my_pthread.c:
Fixes for OS2.
mysys/my_realloc.c:
Fixes for OS2.
mysys/my_redel.c:
Fixes for OS2.
mysys/my_static.c:
Fixes for OS2.
mysys/my_tempnam.c:
Fixes for OS2.
mysys/my_thr_init.c:
Fixes for OS2.
mysys/my_write.c:
Fixes for OS2.
mysys/test_charset.c:
Fixes for OS2.
mysys/thr_alarm.c:
Fixes for OS2.
mysys/tree.c:
Fixes for OS2.
sql/field.cc:
Fixes for OS2.
sql/field.h:
Fixes for OS2.
sql/gen_lex_hash.cc:
Fixes for OS2.
sql/hostname.cc:
Fixes for OS2.
sql/item_func.cc:
Fixes for OS2.
sql/item_strfunc.cc:
Fixes for OS2.
sql/log_event.cc:
Fixes for OS2.
sql/md5.c:
Fixes for OS2.
sql/mini_client.cc:
Fixes for OS2.
sql/mysql_priv.h:
Fixes for OS2.
sql/mysqld.cc:
Fixes for OS2.
sql/net_serv.cc:
Fixes for OS2.
sql/slave.cc:
Fixes for OS2.
sql/sql_base.cc:
Fixes for OS2.
sql/sql_db.cc:
Portability fix
sql/sql_insert.cc:
Fixes for OS2.
sql/sql_load.cc:
Fixes for OS2.
sql/sql_parse.cc:
Fixes for OS2.
sql/sql_table.cc:
Fixes for OS2.
sql/sql_udf.cc:
Fixes for OS2.
sql/violite.c:
Fixes for OS2.
strings/ctype-big5.c:
Fixes for OS2.
strings/ctype-gbk.c:
Fixes for OS2.
strings/ctype-sjis.c:
Fixes for OS2.
strings/ctype-tis620.c:
Fixes for OS2.
strings/ctype.c:
Fixes for OS2.
strings/strnlen.c:
Fixes for OS2.
added a test case for it - took some creative work to figure out
how to make it happen at will
updated the manual
Docs/manual.texi:
fixed wrong info on SLAVE_SKIP_COUNTER
fixed wrong info in BitKeeper tree build instructions
updated change history about bug fix
mysql-test/t/rpl_sporadic_master.test:
tried hard to get slave confused, but failed. nevertheless, a more
exhaustive test case does not hurt
sql/slave.cc:
fixed mysterious offset confusion bug
remove extension from binary log if the user specifies one to avoid
non-rotatable logs
fixed possible use of unitialized IO_CACHE in debug mode
sql/log.cc:
fixed race condition in automatic binlog rotation
sql/mysqld.cc:
remove extension from binary log if the user specifies one to avoid
non-rotatable logs
sql/slave.cc:
fixed race condition with slave thread during server shutdown
sql/sql_class.h:
new_file() needed an argument to know if it was called withing the
log mutex or not
sql/sql_repl.cc:
fixed possible use of unitialized IO_CACHE in debug mode
added debugging options to master to behave sporadically, and a
test case to make sure the slave can deal with it
BitKeeper/triggers/post-commit:
fixed message
sql/mysqld.cc:
added debugging options to force the master to occasionally break
replication
sql/slave.cc:
cosmetic change to improve readability
sql/sql_repl.cc:
support for --sporadic-binlog-dump-fail and --max-binlog-dump-events
sql/sql_repl.h:
support for --sporadic-binlog-dump-fail and --max-binlog-dump-events
preserve originating server id in Intvar events to avoid inifinite loops
include/mysqld_error.h:
new error messages
mysql-test/r/drop.result:
updated result
mysql-test/r/flush.result:
updated result
mysql-test/t/drop.test:
test for proper handling of drop/create database when holding
global read lock
mysql-test/t/flush.test:
test to see if other thread would block on drop database if we
are holding global read lock
sql/log.cc:
preserve originating server id in Intvar log event
sql/share/czech/errmsg.txt:
new error messages
sql/share/danish/errmsg.txt:
new error messages
sql/share/dutch/errmsg.txt:
new error messages
sql/share/english/errmsg.txt:
new error messages
sql/share/estonian/errmsg.txt:
new error messages
sql/share/french/errmsg.txt:
new error messages
sql/share/german/errmsg.txt:
new error messages
sql/share/greek/errmsg.txt:
new error messages
sql/share/hungarian/errmsg.txt:
new error messages
sql/share/italian/errmsg.txt:
new error messages
sql/share/japanese/errmsg.txt:
new error messages
sql/share/korean/errmsg.txt:
new error messages
sql/share/norwegian-ny/errmsg.txt:
new error messages
sql/share/norwegian/errmsg.txt:
new error messages
sql/share/polish/errmsg.txt:
new error messages
sql/share/portuguese/errmsg.txt:
new error messages
sql/share/romanian/errmsg.txt:
new error messages
sql/share/russian/errmsg.txt:
new error messages
sql/share/slovak/errmsg.txt:
new error messages
sql/share/spanish/errmsg.txt:
new error messages
sql/share/swedish/errmsg.txt:
new error messages
sql/slave.cc:
fixed typo in comment
sql/sql_db.cc:
global read lock should block drop/create database
error message if the table open or the index creation failed.
Updated portuguese error messages.
Fix for OS/2 that affected CHECK TABLE.
Docs/manual.texi:
Changelog.
libmysql/errmsg.c:
Updated portuguese error messages
mysys/my_copy.c:
Fix for OS/2
sql/net_pkg.cc:
cleanup
sql/share/portuguese/errmsg.txt:
Updated portuguese error messages
sql/slave.cc:
Cleanup.
Fixed bug that caused client to hang because mysqld never did
send an error message if the table open or the index creation failed.
sql/sql_parse.cc:
Moved handling of 'no_send_ok' to fetch_nx_table.
sql/sql_table.cc:
Cleanup.
added support for virtual master ( replicating from a directory with binlogs)
test case for backup/restore with virtual master
client/mysqltest.c:
fix to accomodate for new test case
mysql-test/mysql-test-run.sh:
do not automagically start slave
sql/log.cc:
support for virtual master
sql/log_event.cc:
fix for mysqlbinlog
sql/log_event.h:
fix for mysqlbinlog
sql/mysqlbinlog.cc:
fix for mysqlbinlog
sql/slave.cc:
virtual master
sql/slave.h:
virtual master
sql/sql_class.h:
clean-up/fixes for virtual master
sql/sql_repl.cc:
cleanup/fixes for virtual master
sql/sql_repl.h:
virtual master
BitKeeper/deleted/.del-compile-ia64-O0-sgicc~a4e0732013d6b602:
Delete: BUILD/compile-ia64-O0-sgicc
BitKeeper/deleted/.del-compile-ia64-O0~3a41dfebefc817d1:
Delete: BUILD/compile-ia64-O0
BitKeeper/deleted/.del-compile-ia64-O2-sgicc~6ff796ecac337849:
Delete: BUILD/compile-ia64-O2-sgicc
BitKeeper/deleted/.del-compile-ia64-O2~87d13594c3599830:
Delete: BUILD/compile-ia64-O2
BitKeeper/deleted/.del-compile-ia64-O6~c34e6b943b12c468:
Delete: BUILD/compile-ia64-O6
Docs/manual.texi:
Cleanup
mysql-test/r/rpl000014.result:
Change port number for comparison
mysql-test/r/rpl000015.result:
Change port number for comparison
mysql-test/r/rpl000016.result:
Change port number for comparison
mysql-test/t/rpl000014.test:
Change port number for comparison
mysql-test/t/rpl000015.test:
Change port number for comparison
mysql-test/t/rpl000016.test:
Change port number for comparison
sql-bench/Results/ATIS-mysql-NT_4.0:
New test results
sql-bench/Results/RUN-mysql-NT_4.0:
New test results
sql-bench/Results/alter-table-mysql-NT_4.0:
New test results
sql-bench/Results/big-tables-mysql-NT_4.0:
New test results
sql-bench/Results/connect-mysql-NT_4.0:
New test results
sql-bench/Results/create-mysql-NT_4.0:
New test results
sql-bench/Results/insert-mysql-NT_4.0:
New test results
sql-bench/Results/select-mysql-NT_4.0:
New test results
sql-bench/Results/wisconsin-mysql-NT_4.0:
New test results
sql/slave.cc:
Removed not used variable
Docs/manual.texi:
Updated MyODBC section
libmysql/conf_to_src.c:
Fixed wrong typecast
mysql-test/r/func_regexp.result:
Added test case for REGEXP bug
mysql-test/t/func_regexp.test:
Added test case for REGEXP bug
regex/engine.c:
Fixed wrong type
regex/regexec.c:
Fixed wrong type
sql/records.cc:
Fixed test of READ lock
sql/slave.cc:
Cleanup
mark killed partially completed updates with an error code in binlog
stop replication if the master reports a possible partial/killed update
test partially killed update
mysql-test/r/rpl000001.result:
updated result
mysql-test/r/rpl000012.result:
updated result
mysql-test/t/rpl000001.test:
test handing a killed partial update
mysql-test/t/rpl000012.test:
test temporary table replication more thoroughly
sql/log_event.h:
mark killed partially completed updates with an error code
BitKeeper/etc/ignore:
Added bdb/btree/btree_auto.c bdb/build_vxworks/db_int.h bdb/build_win32/db_int.h bdb/build_win32/include.tcl bdb/build_win32/libdb.rc bdb/db/crdel_auto.c bdb/db/db_auto.c bdb/dist/config.hin to the ignore list
sql/slave.cc:
stop replication if the master reports a possible partial/killed update
sql/sql_base.cc:
do not log the drop internal temporary tables into the binary log