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.
- Bug #985: "Between RESET SLAVE and START SLAVE, SHOW SLAVE STATUS is wrong."
Now RESET SLAVE puts correct info in mi->host etc. A new test rpl_reset_slave
for that.
- Bug #986: "CHANGE MASTER & START SLAVE do not reset error columns in SHOW
SLAVE STATUS". Now these reset the errors.
mysql-test/r/rpl_loaddata.result:
result update.
mysql-test/t/rpl_loaddata.test:
Test that RESET SLAVE, START SLAVE and CHANGE MASTER all reset
Last_slave_error and Last_slave_errno (columns of SHOW SLAVE STATUS).
We do it in this test because that's one of tests which have
an intentional query error on the slave.
sql/slave.cc:
As we need TWICE the code to copy command-line options (--master-host etc)
to mi (we already had it in init_master_info, but we also need it in RESET
SLAVE to fix bug#985), I make a function of this code.
And a function to reset Last_slave_error and Last_slave_errno (we need
it in CHANGE MASTER, RESET SLAVE, and at the start of the SQL thread).
sql/slave.h:
declarations for new functions.
sql/sql_repl.cc:
copy --master-host etc to mi in RESET SLAVE, so that SHOW SLAVE STATUS
shows correct information.