DBUG_ macro cleanup
buffer boundary cleanup
This changeset, although not fully tested, works for me better than
anything I've had so far, including what is in the repository. I will
push it unless something crashes while I am writing this :-)
mysql-test/r/rpl000014.result:
updated result
mysql-test/r/rpl000015.result:
updated result
mysql-test/r/rpl000016.result:
updated result
mysql-test/r/rpl_log.result:
new result
mysys/mf_iocache.c:
DBUG_ cleanup
mysys/mf_iocache2.c:
DBUG_ fix
sql/log.cc:
added relay_log_space_limit
sql/mysqld.cc:
relay_log_space_limit
sql/slave.cc:
relay_log_space_limit
sql/slave.h:
relay_log_space_limit
sql/sql_class.h:
relay_log_space_limit
sql/sql_repl.cc:
fixed buffer overrun bug
likely() and unlikely() branch prediction compiler hint macros
clean-up of comments
include/my_global.h:
added likely() and unlikely() macros to help some compilers optimize
the code for architecture-specific branch prediction policies
include/my_sys.h:
coverted my_b_append_tell() from macro to a function as it needed to be more
complex to avoid a potential race condition
mysql-test/mysql-test-run.sh:
hostname-independent relay log name to have consistent SHOW SLAVE STATUS
output
mysql-test/r/rpl000014.result:
result update
mysql-test/r/rpl000015.result:
result update
mysql-test/r/rpl000016.result:
result update
mysql-test/r/rpl_log.result:
result update
mysql-test/t/rpl000017-slave.sh:
proper cleanup of old logs
mysys/mf_iocache.c:
cosmetic changes + more debugging asserts
mysys/mf_iocache2.c:
my_b_append_tell()
cleanup of comments
sql/log.cc:
fix potential bug - do not rotate log in the middle of event
sql/slave.cc:
do not write stop events when the server does not actually stop but just
rotates the log
fixed race between queue_event() and show_slave_status()
clean-up of comments
sql/slave.h:
added ignore_stop_event flag to SLAVE_LOG_INFO
fixed too quick timeout in mysql-test-run which caused a race with the
new server getting started before the old one completely finished
shutdown. This should fix the pid warning we've been getting as well as
inconsistent results when running tests with the manager
libmysqld/lib_sql.cc:
post-merge fix
mysql-test/mysql-test-run.sh:
fixed start/stop timeout and cleanup of log directory
mysql-test/r/rpl000014.result:
post-merge fix
mysql-test/r/rpl000015.result:
post-merge fix
mysql-test/r/rpl000016.result:
post-merge fix
mysql-test/r/rpl_log.result:
post-merge fix
sql/log_event.cc:
post-merge fix
sql/slave.cc:
post-merge fix
sql/slave.h:
post-merge fix
sql/sql_class.h:
post-merge fix
tools/mysqlmanager.c:
added debug message
first pull, merge,test, and get it to work.
The main change is the new replication code - now we have two slave threads
SQL thread and I/O thread. I have also re-written a lot of the code to
prepare for multi-master implementation.
I also documented IO_CACHE quite extensively and to some extend, THD class.
Makefile.am:
moved tags target script into a separate file
include/my_sys.h:
fixes in IO_CACHE for SEQ_READ_APPEND + some documentation
libmysqld/lib_sql.cc:
updated replication locks, but now I see I did it wrong and it won't compile. Will fix
before the push.
mysql-test/r/rpl000014.result:
test result update
mysql-test/r/rpl000015.result:
test result update
mysql-test/r/rpl000016.result:
test result update
mysql-test/r/rpl_log.result:
test result update
mysql-test/t/rpl000016-slave.sh:
remove relay logs
mysql-test/t/rpl000017-slave.sh:
remove relay logs
mysql-test/t/rpl_log.test:
updated test
mysys/mf_iocache.c:
IO_CACHE updates to make replication work
mysys/mf_iocache2.c:
IO_CACHE update to make replication work
mysys/thr_mutex.c:
cosmetic change
sql/item_func.cc:
new replication code
sql/lex.h:
new replication
sql/log.cc:
new replication
sql/log_event.cc:
new replication
sql/log_event.h:
new replication
sql/mini_client.cc:
new replication
sql/mini_client.h:
new replication
sql/mysql_priv.h:
new replication
sql/mysqld.cc:
new replication
sql/repl_failsafe.cc:
new replication
sql/slave.cc:
new replication
sql/slave.h:
new replication
sql/sql_class.cc:
new replication
sql/sql_class.h:
new replication
sql/sql_lex.h:
new replication
sql/sql_parse.cc:
new replication
sql/sql_repl.cc:
new replication
sql/sql_repl.h:
new replication
sql/sql_show.cc:
new replication
sql/sql_yacc.yy:
new replication
sql/stacktrace.c:
more robust stack tracing
sql/structs.h:
new replication code
BitKeeper/etc/ignore:
Added mysql-test/r/rpl000002.eval mysql-test/r/rpl000014.eval mysql-test/r/rpl000015.eval mysql-test/r/rpl000016.eval mysql-test/r/slave-running.eval mysql-test/r/slave-stopped.eval to the ignore list
moved fail-safe replication routines from sql_repl.cc to repl_failsafe.cc
write start event only in the first log
client/mysqlbinlog.cc:
work to enable reading 3.23 logs
libmysql/Makefile.shared:
added mf_iocache2 to libmysqlclient - needed for mysqlbinlog
mysql-test/mysql-test-run.sh:
added --start-and-exit
mysql-test/r/rpl000002.result:
result clean-up
mysql-test/r/rpl000016.result:
result update
mysql-test/r/rpl_log.result:
result update
mysql-test/t/rpl000016.test:
test cleanup
mysys/mf_iocache.c:
fixed new bug
sql/log.cc:
write start event only on server start or after reset master
sql/log_event.cc:
work to enable reading 3.23 log format
sql/log_event.h:
work to enable reading 3.23 format
sql/repl_failsafe.cc:
code restructuring
sql/repl_failsafe.h:
re-organized code
sql/slave.cc:
check master version
sql/slave.h:
old_format member
sql/sql_class.h:
allow user to specify io cache type
need_start_event member to allow writing start event only in the first log
sql/sql_parse.cc:
code re-organization
sql/sql_repl.cc:
code reorganization
sql/sql_repl.h:
reorganized code
delimiters/starters/terminators
started work on server management daemon
mysql-test/r/rpl_log.result:
fixed result
sql/log_event.cc:
make LOAD DATA INFILE replication
work with multi-character delimiters/starters/terminators
sql/log_event.h:
make LOAD DATA INFILE replication
work with multi-character delimiters/starters/terminators
libmysqld/Makefile.am:
sql_unions -> sql_union
BitKeeper/etc/ignore:
Added libmysqld/sql_union.cc to the ignore list
mysql-test/mysql-test-run.sh:
fix to get path-independent logging
mysql-test/r/rpl_log.result:
fix for path-independent logging
sql/log.cc:
fixed compile error with USING_TRANSACTIONS
sql/log_event.h:
fixed compile error with USING_TRANSACTIONS
mysql-test/r/rpl_log.result:
fixed result for new file_id generating method
BitKeeper/etc/ignore:
Added vio/viotest-ssl to the ignore list
sql/log.cc:
use a different method to generate unique file_id
sql/log_event.cc:
new file_id generationg method
sql/sql_class.h:
new file_id generationg method
Stop event and bugs the test suite could not catch
Did some big restructuring of binlog event classes - most important
change is that now each event class has exec_event method and one does
not need to modify slave core code to add a new event. Slave code is
now much smaller and easier to read
include/my_sys.h:
pre_code and arg in IO_CACHE
mysql-test/r/rpl_log.result:
updated result for LOAD DATA INFILE fix
mysys/mf_iocache.c:
pre_close routine and arg pointer for callback magic
sql/log.cc:
changed MYSQL_LOG so that write() method is for generic
Log_event - removed redundant code
sql/log_event.cc:
added classes for file events
added exec_event() method to all classes
restructured/cleaned up event classes
sql/log_event.h:
added classes for file events
added exec_event() method to all classes
restructured/cleaned up event classes
sql/mf_iocache.cc:
pre_close/arg
sql/mysqld.cc:
added slave-load-tmpdir and old-rpl-compat options
sql/slave.cc:
changed exec_event() to use Log_event::exec_event()
some routines are now needed in log_event.cc and cannot be static/inline
general cleanup
sql/slave.h:
some routines are now extern because they are called from log_event.cc
sql/sql_class.cc:
added slave_net
sql/sql_class.h:
added slave_net to THD
MYSQL_LOG::write now handles generic Log_event
sql/sql_load.cc:
changes for new handling of LOAD DATA INFILE replication
sql/sql_repl.cc:
added log_loaded_block() callback for IO_CACHE
sql/sql_repl.h:
added structure to pass args to IO_CACHE callback from mysql_load
include/mysqld_error.h:
new error message
mysql-test/r/rpl_log.result:
updated results
mysql-test/t/rpl_log.test:
test show new master for slave
sql/lex.h:
show new master for slave
sql/share/czech/errmsg.txt:
new error
sql/share/danish/errmsg.txt:
new error
sql/share/dutch/errmsg.txt:
new error
sql/share/english/errmsg.txt:
new error
sql/share/estonian/errmsg.txt:
new error
sql/share/french/errmsg.txt:
new error
sql/share/german/errmsg.txt:
new error
sql/share/greek/errmsg.txt:
new error
sql/share/hungarian/errmsg.txt:
new error
sql/share/italian/errmsg.txt:
new error
sql/share/japanese/errmsg.txt:
new error
sql/share/korean/errmsg.txt:
new error
sql/share/norwegian-ny/errmsg.txt:
new error
sql/share/norwegian/errmsg.txt:
new error
sql/share/polish/errmsg.txt:
new error
sql/share/portuguese/errmsg.txt:
new error
sql/share/romanian/errmsg.txt:
new error
sql/share/russian/errmsg.txt:
new error
sql/share/slovak/errmsg.txt:
new error
sql/share/spanish/errmsg.txt:
new error
sql/share/swedish/errmsg.txt:
new error
sql/sql_lex.h:
show new master for slave
sql/sql_parse.cc:
show new master for slave
sql/sql_repl.cc:
show new master for slave
sql/sql_repl.h:
show new master for slave
sql/sql_yacc.yy:
show new master for slave
fixes for rpl_log test to make it config-independent
BitKeeper/etc/ignore:
Added mysql-test/r/rpl_log.eval to the ignore list
client/mysqltest.c:
support for eval_result and let $var = `query` syntax
mysql-test/Makefile.am:
import more variables into mysql-test-run
mysql-test/mysql-test-run.sh:
if we got wrong result on eval_result test case, diff against the
expanded result, not the template
mysql-test/r/rpl_log.result:
change config-dependent parts of the result to dynamic variables
mysql-test/t/rpl_log.test:
get server version from the server
remove obsoleted replace hack to solve port problem - use eval_result
instead
updated rotate event to set new position along with the new log
mysql-test/mysql-test-run.sh:
added --do-test
mysql-test/r/rpl_log.result:
update for new rotate event format
sql/log_event.cc:
rotate event now supports forcing a new position, not just the log
sql/log_event.h:
clean-up of rotate event, support for position force with rotate event
sql/slave.cc:
accept position setting from rotate event
sql/sql_repl.cc:
updates to fake_rotate_event() for the new format
mark a master-forced rotate with a special flag
mysql-test/r/rpl000014.result:
updated result
mysql-test/r/rpl000015.result:
updated result
mysql-test/r/rpl000016.result:
updated result
mysql-test/r/rpl_log.result:
updated result
mysql-test/t/rpl000017-slave.sh:
fix for change in master.info format
mysql-test/t/rpl_log.test:
test for correct last_log_seq in show slave status
sql/log.cc:
mark a master-forced rotate with a special flag
sql/log_event.cc:
show master forced rotate info in SHOW BINLOG EVENTS
sql/log_event.h:
master forced rotation flag
sql/slave.cc:
keep trace of last log sequences in MASTER_INFO
do not rotate on slave, if the rotation on master was forced by its master
sql/slave.h:
keep track of last log sequence number in MASTER_INFO
fixed bugs in log seq - now starting to look good
fixes for SHOW BINLOG EVENTS
will push this one
include/mysqld_error.h:
merged errors from 3.23
mysql-test/mysql-test-run.sh:
wrong quotes in --skip-test
mysql-test/r/drop.result:
updated test
mysql-test/r/rpl_log.result:
updated test
mysql-test/t/drop.test:
updated test
mysql-test/t/rpl_log.test:
fixed bugs in test case
sql/item_sum.h:
remove compiler warning about re-ordered initialization
sql/log.cc:
fixed a bunch of loq_seq bugs
sql/log_event.cc:
fixed log seq bugs, added info for Slave event in SHOW BINLOG EVENTS
sql/share/czech/errmsg.txt:
merged errors from 3.23
sql/share/danish/errmsg.txt:
merged errors from 3.23
sql/share/dutch/errmsg.txt:
merged errors from 3.23
sql/share/english/errmsg.txt:
merged errors from 3.23
sql/share/estonian/errmsg.txt:
merged errors from 3.23
sql/share/french/errmsg.txt:
merged errors from 3.23
sql/share/german/errmsg.txt:
merged errors from 3.23
sql/share/greek/errmsg.txt:
merged errors from 3.23
sql/share/hungarian/errmsg.txt:
merged errors from 3.23
sql/share/italian/errmsg.txt:
merged errors from 3.23
sql/share/japanese/errmsg.txt:
merged errors from 3.23
sql/share/korean/errmsg.txt:
merged errors from 3.23
sql/share/norwegian-ny/errmsg.txt:
merged errors from 3.23
sql/share/norwegian/errmsg.txt:
merged errors from 3.23
sql/share/polish/errmsg.txt:
merged errors from 3.23
sql/share/portuguese/errmsg.txt:
merged errors from 3.23
sql/share/romanian/errmsg.txt:
merged errors from 3.23
sql/share/russian/errmsg.txt:
merged errors from 3.23
sql/share/slovak/errmsg.txt:
merged errors from 3.23
sql/share/spanish/errmsg.txt:
merged errors from 3.23
sql/share/swedish/errmsg.txt:
merged errors from 3.23
sql/slave.cc:
fixed log_seq bugs
fixed log sequence bugs
fixed bugs in handling Slave event
added test case with SHOW BINLOG EVENTS
have not fixed all the bugs - found some that are also in 3.23,
will fix them there first, then do pull and cleanup
will not push this changeset
include/mysqld_error.h:
new error
mysql-test/mysql-test-run.sh:
use quotes in expr
sql/lex.h:
SHOW BINLOG EVENTS
sql/log.cc:
fixed log sequence bugs
sql/log_event.cc:
SHOW BINLOG EVENTS
fixed bugs Slave event handling
sql/log_event.h:
SHOW BINLOG EVENTS
sql/share/english/errmsg.txt:
SHOW BINLOG EVENTS
sql/sql_lex.h:
SHOW BINLOG EVENTS
sql/sql_parse.cc:
SHOW BINLOG EVENTS
sql/sql_repl.cc:
SHOW BINLOG EVENTS
sql/sql_repl.h:
SHOW BINLOG EVENTS
sql/sql_yacc.yy:
SHOW BINLOG EVENTS