manually resolved conflicts:
Text conflict in client/mysqltest.c
Contents conflict in mysql-test/include/have_bug25714.inc
Text conflict in mysql-test/include/have_ndbapi_examples.inc
Text conflict in mysql-test/mysql-test-run.pl
Text conflict in mysql-test/suite/parts/inc/partition_check_drop.inc
Text conflict in mysql-test/suite/parts/inc/partition_layout.inc
Text conflict in mysql-test/suite/parts/inc/partition_layout_check1.inc
Text conflict in mysql-test/suite/parts/inc/partition_layout_check2.inc
Text conflict in mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_alter1_1_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_alter1_2_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_alter2_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_alter3_innodb.result
Text conflict in mysql-test/suite/parts/r/partition_alter3_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_basic_innodb.result
Text conflict in mysql-test/suite/parts/r/partition_basic_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_basic_symlink_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_engine_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_syntax_myisam.result
Text conflict in mysql-test/suite/rpl_ndb/t/disabled.def
Text conflict in mysql-test/t/disabled.def
The problem of this bug is that we need to get the list of tables
to be updated for a multi-table update statement, which requires to
open all the tables referenced by the statement and resolve all
the fields involved in update in order to figure out the list of
tables for update. However if there are replicate filter rules,
some tables might not exist on slave and result in a failure
before we could examine the filter rules.
I think the whole problem can not be solved on slave alone,
the master must record and send the information of tables
involved for update to slave, so that the slave do not need to
open all the tables referenced by the multi-table update statement to
figure out which tables are involved for update.
So a status variable is added to Query_log event to store the
value of table map for update on master. And on slave, it will
try to get the value of this variable and use it to examine
filter rules without opening any tables on slave, if this values
is not available, the old approach is used and thus the bug will
still occur for when replicating from old masters.
sql/sql_class.h:
add member table_map_for_update to THD
sql/sql_parse.cc:
check filter rules by using table_map_for_update value
sql/sql_update.cc:
save the value of table_map_for_update
test to stall for slave_net_timeout and cause some test case fail
mysql-test/include/have_log_bin.inc:
remove reset master, which can cause some test to stall for slave_net_timeout and cause some test case fail
mysql-test/r/mysqlbinlog_base64.result:
update result
mysql-test/t/mysqlbinlog_base64.test:
Add reset master to make sure binlog is clean when the test case start
Problem: After START SLAVE, the Slave_IO_Status column of
SHOW SLAVE STATUS goes from No to Yes asynchronously. That
caused sporadic failures on pushbuild in rpl_stm_until since
the test contains SHOW SLAVE STATUS right after START SLAVE.
Fix: Wait until Slave_IO_Status becomes Yes after each
START SLAVE.
mysql-test/include/wait_for_slave_io_to_start.inc:
Macro that waits until the Slave_IO_Running field of
SHOW SLAVE STATUS becomes Yes.
mysql-test/suite/rpl/r/rpl_stm_until.result:
updated result file
mysql-test/suite/rpl/t/rpl_stm_until.test:
- Added wait_for_slave_io_to_start after each start slave.
- Removed unused initialization of test variable $VERSION
- Added comments.
Problem: mtr --max-test-fail=0 should allow unlimited number
of errors, but stops after the second error.
Fix: It's just a typo in mysql-test-run.pl
mysql-test/mysql-test-run.pl:
Just a typo.
If the server failed to expired log files during start up it could crash.
sql/log.cc:
Added predicate to protect againt cases when current_thd might be NULL.
the reason for the failure is that io thread passes through a sequence of state
changes before it eventually got stuck at the expect running state as NO.
It's unreasonble to wait for the running status while the whole idea of the test is
to get to the IO thread error.
Fixed with changing the waiting condition.
mysql-test/suite/rpl/r/rpl_server_id1.result:
results changed
mysql-test/suite/rpl/t/disabled.def:
re-enabling rpl_server_id1
mysql-test/suite/rpl/t/rpl_server_id1.test:
deploying the exact waiting condition i.e to wait for the slave io error.
- Revert the fix for bug 33812
- fixed a win32 warning
client/mysql.cc:
revert the fix for bug 33812
mysql-test/r/mysql.result:
revert the fix for bug 33812
mysql-test/t/mysql_delimiter.sql:
revert the fix for bug 33812
mysys/default.c:
fixed a win32 warning
Many dump threads can exist due to a way the new version of mtr governs suites.
For this immediate problem the test is refined not to use I_S but rather to reconnect
explicitly with preserving logics of a an old target bug fixes verification.
mysql-test/suite/rpl/r/rpl_temporary.result:
results changed
mysql-test/suite/rpl/t/rpl_temporary.test:
refining the bug#17284 test to avoid counting dump threads in favor to reconnect
explicitly with preserving the orig logics.
Revert fix for this bug as it introduced a regression
reported in Bug#38158.
client/mysql.cc:
Revert changes introduced by fix for Bug#33812
mysql-test/r/mysql.result:
Revert changes introduced by fix for Bug#33812
mysql-test/t/mysql_delimiter.sql:
Revert changes introduced by fix for Bug#33812