* A more dynamic binlog format which allows small changes (1064)
* Log session variables in Query_log_event (1063)
It contains a few bugfixes (which I made when running the testsuite).
I carefully updated the results of the testsuite (i.e. I checked for every one,
if the difference between .reject and .result could be explained).
Apparently mysql-test-run --manager is broken in 4.1 and 5.0 currently,
so I could neither run the few tests which require --manager, nor check
that they pass nor modify their .result. But for builds, we don't run
with --manager.
Apart from --manager, the full testsuite passes, with Valgrind too (no errors).
I'm going to push in the next minutes. Remains: update the manual.
Note: by chance I saw that (in 4.1, in 5.0) rpl_get_lock fails when run alone;
this is normal at it makes assumptions on thread ids. I will fix this one day
in 4.1.
mysql-test/r/rpl000015.result:
result update
mysql-test/r/rpl_change_master.result:
result update
mysql-test/r/rpl_error_ignored_table.result:
result update
mysql-test/r/rpl_flush_log_loop.result:
result update
mysql-test/r/rpl_flush_tables.result:
result update
mysql-test/r/rpl_loaddata.result:
result update
mysql-test/r/rpl_loaddata_rule_m.result:
result update
mysql-test/r/rpl_loaddata_rule_s.result:
result update
mysql-test/r/rpl_log.result:
result update
mysql-test/r/rpl_log_pos.result:
result update
mysql-test/r/rpl_max_relay_size.result:
result update
mysql-test/r/rpl_relayrotate.result:
result update
mysql-test/r/rpl_replicate_do.result:
result update
mysql-test/r/rpl_reset_slave.result:
result update
mysql-test/r/rpl_rotate_logs.result:
result update
mysql-test/r/rpl_session_var.result:
result update
mysql-test/r/rpl_temporary.result:
result update
mysql-test/r/rpl_trunc_binlog.result:
result update
mysql-test/r/rpl_until.result:
result update
mysql-test/r/rpl_user_variables.result:
result update
mysql-test/t/rpl000010-slave.opt:
need to wait 2 events, because now we receive a Format_desc on top of the Rotate,
when replication starts.
mysql-test/t/rpl000015.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_change_master.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_empty_master_crash.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_error_ignored_table.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_flush_log_loop.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_loaddata.test:
position update
mysql-test/t/rpl_loaddata_rule_m.test:
position update
mysql-test/t/rpl_loaddata_rule_s.test:
position update
mysql-test/t/rpl_log.test:
position update
mysql-test/t/rpl_log_pos.test:
position update
mysql-test/t/rpl_max_relay_size.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_openssl.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_redirect.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_relayrotate-slave.opt:
better options for this test
mysql-test/t/rpl_relayrotate.test:
using max() is better for debugging (it shows at which place the slave
SQL thread resumed)
mysql-test/t/rpl_replicate_do.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_reset_slave.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_rotate_logs.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_session_var.test:
100 because password() is longer than 10 chars
mysql-test/t/rpl_trunc_binlog.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_until.test:
position update
mysql-test/t/rpl_user_variables.test:
position update
sql/log.cc:
Ensure that the Format_desc propagated on next relay logs does not trigger
undue actions (like incrementing some positions or clearing some files).
sql/log_event.cc:
* When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of
a transaction (then these were written by the slave itself to its relay log),
it should not increment rli->group* variables, but only rli->event* ones.
* When the slave SQL thread finds a Format_desc not to be ignored (not
the same server id as the slave's), if it has log_pos==0 it must not trigger
"unfinished transaction in master's binlog" (log_pos==0 is always a marker
in the relay log to mean "this event was not at this place in the master's
binlog": it's for fake Rotate events, and for Format_description events which the master had
to send us for replication to start).
* In the Query_log_event on disk, catalog is now terminated by '\0'.
* thd->catalog must be set to 0 when some exec_event() terminate (otherwise
double free).
sql/slave.cc:
* Fixes for a few bugs when ignoring events in the slave SQL thread:
- do not decrement rli->slave_skip_counter if the event is an event
related to the binlog or relay log itself (FORMAT_DESCRIPTION,
ROTATE, STOP) because these events should never be skipped (or the slave
will be confused). Usually the user wants to skip a query, not a Rotate...
- when we (re)connect to the master, we must free description_event_for_queue
(otherwise memory leak when we reconnect).
* Changed a bit the code where we change description_event_for_queue,
to make it look "safer".
* Moved 'created=0' to log.cc where it is safer.
* When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of
a transaction (then these were written by the slave itself to its relay log),
it should not increment rli->group* variables, but only rli->event* ones.
sql/sql_class.h:
a warning comment
sql/sql_repl.cc:
A mistake: I had passed a char* instead of char**
(Initial caps for each word.) For example, instead of writing
Until_condition, Until_Log_File, and Until_log_pos, write
Until_Condition, Until_Log_File, and Until_Log_pos.
mysql-test/r/rpl000015.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_empty_master_crash.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_error_ignored_table.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_flush_log_loop.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_loaddata.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_log.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_log_pos.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_max_relay_size.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_openssl.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_redirect.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_replicate_do.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_reset_slave.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_rotate_logs.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_trunc_binlog.result:
Write slave status field names using consistent style.
mysql-test/r/rpl_until.result:
Write slave status field names using consistent style.
mysql-test/t/mix_innodb_myisam_binlog.test:
Write slave status field names using consistent style.
mysql-test/t/rpl_max_relay_size.test:
Write slave status field names using consistent style.
sql/slave.cc:
Write slave status field names using consistent style.
I manually edited rpl_openssl.result because the test is skipped on my
machine. Hope it's correct.
mysql-test/r/rpl000015.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_error_ignored_table.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_flush_log_loop.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_loaddata.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_log.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_log_pos.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_max_relay_size.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_openssl.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_replicate_do.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_reset_slave.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_rotate_logs.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_trunc_binlog.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_until.result:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl000015.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_empty_master_crash.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_error_ignored_table.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_flush_log_loop.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_loaddata.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_log.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_log_pos.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_max_relay_size.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_openssl.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_redirect.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_replicate_do.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_reset_slave.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_rotate_logs.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_trunc_binlog.test:
Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_until.test:
Don't show Slave_IO_State because it can't be predicted.
"Add a column "Timestamp_of_last_master_event_executed" in SHOW SLAVE STATUS".
Finally this is adding
- Slave_IO_State (a copy of the State column of SHOW PROCESSLIST for the I/O thread,
so that the users, most of the time, has enough info with only SHOW SLAVE STATUS).
- Seconds_behind_master. When the slave connects to the master it does SELECT UNIX_TIMESTAMP()
on the master, computes the absolute difference between the master's and the slave's clock.
It records the timestamp of the last event executed by the SQL thread, and does a
small computation to find the number of seconds by which the slave is late.
mysql-test/r/rpl000015.result:
result update
mysql-test/r/rpl_empty_master_crash.result:
result update
mysql-test/r/rpl_error_ignored_table.result:
result update
mysql-test/r/rpl_flush_log_loop.result:
result update
mysql-test/r/rpl_loaddata.result:
result update
mysql-test/r/rpl_log.result:
result update
mysql-test/r/rpl_log_pos.result:
result update
mysql-test/r/rpl_max_relay_size.result:
result update
mysql-test/r/rpl_redirect.result:
result update
mysql-test/r/rpl_replicate_do.result:
result update
mysql-test/r/rpl_reset_slave.result:
result update
mysql-test/r/rpl_rotate_logs.result:
result update
mysql-test/r/rpl_trunc_binlog.result:
result update
mysql-test/r/rpl_until.result:
result update
mysql-test/t/rpl000015.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_empty_master_crash.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_error_ignored_table.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_flush_log_loop.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_loaddata.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_log.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_log_pos.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_max_relay_size.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_openssl.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_redirect.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_replicate_do.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_reset_slave.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_rotate_logs.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_trunc_binlog.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_until.test:
update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
sql/log_event.cc:
when the SQL thread executes an event, we record its timestamp
sql/slave.cc:
in check_master_version() we know read the master's clock, to know the clock difference
with the slave.
In show_master_info() we send the state of the I/O thread, and compute the number of
seconds by which the slave is late.
sql/slave.h:
timestamp of the last master's event executed by the SQL thread,
and difference between the clocks of the master and slave.
sql/sql_repl.cc:
clear the Seconds_behind_master column of SHOW SLAVE STATUS when RESET SLAVE or CHANGE MASTER.
to SHOW SLAVE STATUS.
mysql-test/r/rpl000015.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_empty_master_crash.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_error_ignored_table.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_flush_log_loop.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_loaddata.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_log.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_log_pos.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_max_relay_size.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_openssl.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_redirect.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_replicate_do.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_reset_slave.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_rotate_logs.result:
Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_until.result:
Post merge fix
mysql-test/t/rpl_until.test:
Post merge fix
Added proper options to CHANGE MASTER TO, new fields to SHOW SLAVE STATUS,
Honoring this parameters during connection to master.
Introduced new format of master.info file
include/mysqld_error.h:
Added error code for "slave without SSL ignored SSL params warning"
mysql-test/Makefile.am:
Copy files required for rpl_openssl test during the make process
mysql-test/r/rpl000015.result:
Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_empty_master_crash.result:
Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_flush_log_loop.result:
Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_log.result:
Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_log_pos.result:
Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_redirect.result:
Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_replicate_do.result:
Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_rotate_logs.result:
Added fields to SHOW SLAVE STATUS for replication over SSL
sql/lex.h:
Added MASTER_SSL lexems for CHANGE MASTER
sql/mysqld.cc:
Added --master-ssl-ca parameter. Fixed description of other master-ssl parameters
sql/repl_failsafe.cc:
Added SSL support to connect_to_master()
sql/share/czech/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/danish/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/dutch/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/english/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/estonian/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/french/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/german/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/greek/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/hungarian/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/italian/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/japanese/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/korean/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/norwegian-ny/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/norwegian/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/polish/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/portuguese/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/romanian/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/russian/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/serbian/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/slovak/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/spanish/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/swedish/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/share/ukrainian/errmsg.txt:
Added "slave without SSL ignored SSL params" warning
sql/slave.cc:
Introduced new format of master.info file
Added support of SSL params in master.info and SHOW SLAVE STATUS
Added support of SSL connections
sql/slave.h:
Added SSL parameters to MASTER_INFO
sql/sql_lex.h:
Added SSL parameters for CHANGE MASTER TO
sql/sql_repl.cc:
Added SSL parameters for CHANGE MASTER TO
sql/sql_yacc.yy:
Added SSL parameters for CHANGE MASTER TO
and other replicate-*-table options in SHOW SLAVE STATUS.
Seems like it had not been done, so I push it now:
there's 4 new columns to SHOW SLAVE STATUS.
mysql-test/r/rpl000015.result:
Result update (more columns)
mysql-test/r/rpl_empty_master_crash.result:
Result update (more columns)
mysql-test/r/rpl_flush_log_loop.result:
Result update (more columns)
mysql-test/r/rpl_log.result:
Result update (more columns)
mysql-test/r/rpl_log_pos.result:
Result update (more columns)
mysql-test/r/rpl_redirect.result:
Result update (more columns)
mysql-test/r/rpl_replicate_do.result:
Result update (more columns)
mysql-test/r/rpl_rotate_logs.result:
Result update (more columns)
mysql-test/t/rpl_replicate_do.test:
Result update (more columns)
sql/slave.cc:
Print replicate_*_table options in SHOW SLAVE STATUS
sql/slave.h:
two functions to make a string of replicate_*_table lists.
mysql-test/Makefile.am:
Changed binlog.001 to be binlog.000001
mysql-test/r/rpl000015.result:
Changed binlog.001 to be binlog.000001
mysql-test/r/rpl000018.result:
Changed binlog.001 to be binlog.000001
mysql-test/r/rpl_flush_log_loop.result:
Changed binlog.001 to be binlog.000001
mysql-test/r/rpl_log.result:
Changed binlog.001 to be binlog.000001
mysql-test/r/rpl_log_pos.result:
Changed binlog.001 to be binlog.000001
mysql-test/r/rpl_rotate_logs.result:
Changed binlog.001 to be binlog.000001
mysql-test/t/rpl000017-slave.sh:
Changed binlog.001 to be binlog.000001
mysql-test/t/rpl_log.test:
Changed binlog.001 to be binlog.000001
mysql-test/t/rpl_rotate_logs.test:
Changed binlog.001 to be binlog.000001
sql/log.cc:
Changed binlog.001 to be binlog.000001
Fixed configure problems with HPUX and openbsd
SHOW SLAVE STATUS returns empty set if slave is not initialized
SHOW MASTER STATUS returns empty set if binary logging is not enabled.
Fixed shutdown problem on Solaris.
BitKeeper/deleted/.del-set_var.cc~5374527de1955359:
Delete: libmysqld/set_var.cc
BitKeeper/etc/ignore:
added libmysqld/set_var.cc
Build-tools/Do-compile:
Remove warnings from touch during compilation
Docs/manual.texi:
Changelog
client/mysqltest.c:
Added real_sleep command
configure.in:
Fixed type for HPUX10
innobase/configure.in:
Fixed type for openbsd
libmysql/libmysql.c:
Fix for new SHOW SLAVE STATUS
myisam/mi_update.c:
Update key file if using external locking
mysql-test/mysql-test-run.sh:
Safety fix
mysql-test/r/rpl000015.result:
Update for new SHOW SLAVE STATUS
mysql-test/r/rpl_empty_master_crash.result:
Update for new SHOW SLAVE STATUS
mysql-test/t/rpl000001.test:
sleep -> real_sleep to avoid timing problem
sql/mysqld.cc:
Fixed bug with SIGTERM on Solaris
sql/slave.cc:
SHOW SLAVE STATUS returns empty sets if slave is not initialized.
sql/sql_repl.cc:
SHOW MASTER STAT returns empty set if no binary logging.
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
memory corruption I can only repeat on one system.
mysql-test/r/multi_update.result:
extended test trying to find why the old one was failing
mysql-test/r/rpl000015.result:
result update
mysql-test/t/multi_update.test:
updated test to do more intermediate result checks
mysql-test/t/rpl000014.test:
cosmetic change
mysql-test/t/rpl000015-slave-master-info.opt:
reduce connect retry trying to simulate a bug
mysql-test/t/rpl000015.test:
cosmetic change
sql/lex.h:
added RELAY_LOG_FILE and RELAY_LOG_POS to CHANGE MASTER TO
sql/log.cc:
fixed replication bug
sql/log_event.cc:
properly ignore replication errors according to error mask
sql/mysqld.cc:
handle SIGFPE in the coredump handler
sql/slave.cc:
do not kick slave if it has already exited and freed the structures
sql/sql_lex.cc:
fixed initialization bug in CHANGE MASTER TO
sql/sql_lex.h:
CHANGE MASTER TO .. RELAY_LOG_FILE=,RELAY_LOG_POS=
sql/sql_repl.cc:
CHANGE MASTER TO .. RELAY_LOG_FILE=,RELAY_LOG_POS=
sql/sql_yacc.yy:
CHANGE MASTER TO .. RELAY_LOG_FILE=,RELAY_LOG_POS=
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
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
Documented/cleaned up log event code
Updated tests
mysql-test/r/rpl000014.result:
new binlog format
mysql-test/r/rpl000015.result:
new binlog format
mysql-test/r/rpl000016.result:
new binlog format
mysql-test/std_data/master-bin.001:
new binlog format
mysql-test/t/rpl000014.test:
new binlog format
sql/log.cc:
new binlog format
sql/log_event.cc:
new binlog format
sql/log_event.h:
new binlog format
sql/sql_class.cc:
new binlog format
sql/sql_class.h:
new binlog format
sql/sql_repl.cc:
new binlog format
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
slave will skip the first SQL_SLAVE_SKIP_COUNTER events on start -
this is needed to recover from broken replication when the next log
event(s) should just be skipped.
Rotate binlogs when max_binlog_size is reached
include/my_sys.h:
added my_snprintf()
include/mysqld_error.h:
more error messages
mysql-test/r/rpl000014.result:
updated results for new SHOW SLAVE STATUS format
mysql-test/r/rpl000015.result:
update for SHOW SLAVE STATUS
mysql-test/r/rpl000016.result:
update for additions to the test
mysql-test/t/rpl000016.test:
test max_binlog_size and slave_skip_counter
mysys/my_vsnprintf.c:
added my_snprintf()
sql/gen_lex_hash.cc:
old values could not do it
sql/lex.h:
updates for SQL_SLAVE_SKIP_COUNTER
sql/log.cc:
rotate binlogs when max_binlog_size is reached
sql/mysqld.cc:
added max_binlog_size
sql/share/czech/errmsg.txt:
new errors
sql/share/danish/errmsg.txt:
new errors
sql/share/dutch/errmsg.txt:
new errors
sql/share/english/errmsg.txt:
new errors
sql/share/estonian/errmsg.txt:
new errors
sql/share/french/errmsg.txt:
new errors
sql/share/german/errmsg.txt:
new errors
sql/share/greek/errmsg.txt:
new errors
sql/share/hungarian/errmsg.txt:
new errors
sql/share/italian/errmsg.txt:
new errors
sql/share/japanese/errmsg.txt:
new errors
sql/share/korean/errmsg.txt:
new errors
sql/share/norwegian-ny/errmsg.txt:
new errors
sql/share/norwegian/errmsg.txt:
new errors
sql/share/polish/errmsg.txt:
new errors
sql/share/portuguese/errmsg.txt:
new errors
sql/share/romanian/errmsg.txt:
new errors
sql/share/russian/errmsg.txt:
new errors, translated untranslated messages
sql/share/slovak/errmsg.txt:
new errors
sql/share/spanish/errmsg.txt:
new errors
sql/share/swedish/errmsg.txt:
new errors
sql/slave.cc:
updates for slave_skip_counter and extension to show slave status
sql/slave.h:
slave_skip_counter
sql/sql_repl.cc:
use error messages from errmsg.txt
sql/sql_yacc.yy:
skip_slave_counter
Made test more reliable on slow machines
Docs/manual.texi:
Changelog
client/mysqladmin.c:
Made --silent more silent
include/my_pthread.h:
Removed warning on OSF1
mysql-test/install_test_db.sh:
Allow connections from 127.0.0.1
mysql-test/mysql-test-run.sh:
Use mysqladmin ping to test if server is up
mysql-test/r/rpl000015.result:
Added sleep to make results repeatable
mysql-test/t/rpl000015.test:
Added sleep to make results repeatable
mysql-test/t/rpl000016.test:
Added sleep to make results repeatable
sql/sql_repl.cc:
added DBUG entry
sql/sql_table.cc:
Removed comparison of virtual functions as this didn't work on
Compaq C++ on OSF1
Fixed test results.
Added mysqld variable 'have_isam'
BitKeeper/deleted/.del-master-slave.inc~556fd038c3a3d54:
Delete: mysql-test/t/include/master-slave.inc
BitKeeper/deleted/.del-README~f9fd36f3c3711305:
Delete: mysql-test/r/3.23/README
Docs/manual.texi:
Fixed typos
client/mysqltest.c:
Changed internal commands to accept -- before them.
Added command 'require' to make it possible to skip tests if the
mysqld server lacks some capabilites.
Removed extra \t at end of lines
configure.in:
Update
myisam/myisamlog.c:
cleanup
mysql-test/mysql-test-run.sh:
Added support for 'not supported' tests
mysql-test/r/alt000001.result:
Removed end tab
mysql-test/r/bdb.result:
Removed end tab
mysql-test/r/crypt.result:
Removed end tab
mysql-test/r/equal.result:
Removed end tab
mysql-test/r/ft0000001.a.result:
Removed end tab
mysql-test/r/ft0000001.b.result:
Removed end tab
mysql-test/r/ft0000001.c.result:
Removed end tab
mysql-test/r/ft0000001.d.result:
Removed end tab
mysql-test/r/ft0000001.e.result:
Removed end tab
mysql-test/r/ft0000002.a.result:
Removed end tab
mysql-test/r/ft0000002.b.result:
Removed end tab
mysql-test/r/ft0000002.c.result:
Removed end tab
mysql-test/r/ins000001.result:
Removed end tab
mysql-test/r/mrg000001.dummy.result:
Removed end tab
mysql-test/r/mrg000001.result:
Removed end tab
mysql-test/r/mrg000002.result:
Removed end tab
mysql-test/r/rpl000001.a.result:
Removed end tab
mysql-test/r/rpl000001.b.result:
Removed end tab
mysql-test/r/rpl000002.result:
Removed end tab
mysql-test/r/rpl000003.result:
Removed end tab
mysql-test/r/rpl000004.a.result:
Removed end tab
mysql-test/r/rpl000004.b.result:
Removed end tab
mysql-test/r/rpl000005.result:
Removed end tab
mysql-test/r/rpl000006.result:
Removed end tab
mysql-test/r/rpl000007.result:
Removed end tab
mysql-test/r/rpl000008.result:
Removed end tab
mysql-test/r/rpl000009.result:
Removed end tab
mysql-test/r/rpl000010.result:
Removed end tab
mysql-test/r/rpl000011.result:
Removed end tab
mysql-test/r/rpl000012.result:
Removed end tab
mysql-test/r/rpl000012.status.result:
Removed end tab
mysql-test/r/rpl000013.result:
Removed end tab
mysql-test/r/rpl000013.status.result:
Removed end tab
mysql-test/r/rpl000014.result:
Removed end tab
mysql-test/r/rpl000015.result:
Removed end tab
mysql-test/r/rpl000016.result:
Removed end tab
mysql-test/r/sel000001.result:
Removed end tab
mysql-test/r/sel000002.result:
Removed end tab
mysql-test/r/sel000003.result:
Removed end tab
mysql-test/r/sel000004.result:
Removed end tab
mysql-test/r/sel000005.result:
Removed end tab
mysql-test/r/sel000006.result:
Removed end tab
mysql-test/r/sel000007.result:
Removed end tab
mysql-test/r/sel000008.result:
Removed end tab
mysql-test/r/sel000009.result:
Removed end tab
mysql-test/r/sel000010.result:
Removed end tab
mysql-test/r/sel000011.result:
Removed end tab
mysql-test/r/sel000012.result:
Removed end tab
mysql-test/r/sel000013.result:
Removed end tab
mysql-test/r/sel000014.result:
Removed end tab
mysql-test/r/sel000015.result:
Removed end tab
mysql-test/r/sel000016.result:
Removed end tab
mysql-test/r/sel000017.result:
Removed end tab
mysql-test/r/sel000018.result:
Removed end tab
mysql-test/r/sel000019.result:
Removed end tab
mysql-test/r/sel000020.result:
Removed end tab
mysql-test/r/sel000021.result:
Removed end tab
mysql-test/r/sel000022.result:
Removed end tab
mysql-test/r/sel000023.result:
Removed end tab
mysql-test/r/sel000024.result:
Removed end tab
mysql-test/r/sel000025.result:
Removed end tab
mysql-test/r/sel000026.result:
Removed end tab
mysql-test/r/sel000027.result:
Removed end tab
mysql-test/r/sel000028.result:
Removed end tab
mysql-test/r/sel000029.result:
Removed end tab
mysql-test/r/sel000030.result:
Removed end tab
mysql-test/r/sel000031.result:
Removed end tab
mysql-test/r/sel000032.result:
Removed end tab
mysql-test/r/sel000033.result:
Removed end tab
mysql-test/r/sel000100.result:
Removed end tab
mysql-test/r/shw000001.result:
Removed end tab
mysql-test/r/slave-running.result:
Removed end tab
mysql-test/r/slave-stopped.result:
Removed end tab
mysql-test/t/bdb.test:
Check that we have BDB support
mysql-test/t/replace.test:
Check if we support ISAM tables
sql/gen_lex_hash.cc:
Fixed bug in last output
sql/ha_berkeley.cc:
Bug fix
sql/ha_berkeley.h:
Initialize using_ignore
sql/handler.h:
Fixed typo
sql/mysqld.cc:
Fixed typos; Added variable 'have_isam'
sql/sql_class.h:
Fixed typo
BitKeeper/etc/ignore:
Added sql-bench/Results-linux/ATIS-mysql_bdb-Linux_2.2.14_my_SMP_i686 to the ignore list
mysql-test/mysql-test-run:
fixed bug that unconditionally restarted both servers before each test
added support for slave-master-info.opt to specify master info
options and override defaults for an individual test
fixed race conditions in slave start/slave stop
added a new rpl test case
sql/sql_repl.cc:
fixed race conditions in slave start/slave stop