auto-merge mysql-5.1-bugteam (local) --> mysql-5.1-bugteam

This commit is contained in:
Alfranio Correia 2009-08-24 10:24:52 +01:00
commit 9a632549da
3 changed files with 19 additions and 9 deletions

View File

@ -101,6 +101,8 @@ master-bin.000001 # Query # # use `test`; UPDATE t SET f = 'dark blue 1' WHERE f
master-bin.000001 # Query # # use `test`; INSERT INTO t VALUES (6 + (1 * 10),"brown") master-bin.000001 # Query # # use `test`; INSERT INTO t VALUES (6 + (1 * 10),"brown")
master-bin.000001 # Query # # use `test`; INSERT INTO n VALUES (now(),"brown") master-bin.000001 # Query # # use `test`; INSERT INTO n VALUES (now(),"brown")
master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Xid # # COMMIT /* XID */
source include/diff_master_slave.inc;
source include/diff_master_slave.inc;
######################################################################## ########################################################################
# Cleanup # Cleanup
######################################################################## ########################################################################

View File

@ -125,14 +125,13 @@ while ($type)
connection master; connection master;
sync_slave_with_master; sync_slave_with_master;
# Re-enable this after fixing BUG#46130 connection master;
#connection master; let $diff_statement= SELECT * FROM t order by i;
#let $diff_statement= SELECT * FROM t order by i; source include/diff_master_slave.inc;
#source include/diff_master_slave.inc;
#connection master; connection master;
#let $diff_statement= SELECT * FROM n order by d, f; let $diff_statement= SELECT * FROM n order by d, f;
#source include/diff_master_slave.inc; source include/diff_master_slave.inc;
--echo ######################################################################## --echo ########################################################################
--echo # Cleanup --echo # Cleanup

View File

@ -3169,7 +3169,7 @@ compare_errors:
/* /*
If we expected a non-zero error code, and we don't get the same error If we expected a non-zero error code, and we don't get the same error
code, and none of them should be ignored. code, and it should be ignored or is related to a concurrency issue.
*/ */
actual_error= thd->is_error() ? thd->main_da.sql_errno() : 0; actual_error= thd->is_error() ? thd->main_da.sql_errno() : 0;
DBUG_PRINT("info",("expected_error: %d sql_errno: %d", DBUG_PRINT("info",("expected_error: %d sql_errno: %d",
@ -3192,7 +3192,8 @@ Default database: '%s'. Query: '%s'",
thd->is_slave_error= 1; thd->is_slave_error= 1;
} }
/* /*
If we get the same error code as expected, or they should be ignored. If we get the same error code as expected and it is not a concurrency
issue, or should be ignored.
*/ */
else if ((expected_error == actual_error && else if ((expected_error == actual_error &&
!concurrency_error_code(expected_error)) || !concurrency_error_code(expected_error)) ||
@ -3202,6 +3203,14 @@ Default database: '%s'. Query: '%s'",
clear_all_errors(thd, const_cast<Relay_log_info*>(rli)); clear_all_errors(thd, const_cast<Relay_log_info*>(rli));
thd->killed= THD::NOT_KILLED; thd->killed= THD::NOT_KILLED;
} }
/*
If we expected a non-zero error code and get nothing and, it is a concurrency
issue or should be ignored.
*/
else if (expected_error && !actual_error &&
(concurrency_error_code(expected_error) ||
ignored_error_code(expected_error)))
ha_autocommit_or_rollback(thd, TRUE);
/* /*
Other cases: mostly we expected no error and get one. Other cases: mostly we expected no error and get one.
*/ */