Merge branch '10.11' into 11.1

This commit is contained in:
Oleksandr Byelkin 2024-08-03 09:32:42 +02:00
commit 80abd847da
461 changed files with 12070 additions and 5113 deletions

View file

@ -1411,7 +1411,7 @@ Query_log_event::Query_log_event(THD* thd_arg, const char* query_arg,
is created we create tables with thd->variables.wsrep_on=false
to avoid replicating wsrep_schema tables to other nodes.
*/
if (WSREP_ON && !is_trans_keyword())
if (WSREP_ON && !is_trans_keyword(false))
{
thd->wsrep_PA_safe= false;
}
@ -1912,7 +1912,11 @@ int Query_log_event::do_apply_event(rpl_group_info *rgi,
::do_apply_event(), then the companion SET also have so
we don't need to reset_one_shot_variables().
*/
if (is_trans_keyword() || rpl_filter->db_ok(thd->db.str))
if (rpl_filter->is_db_empty() ||
is_trans_keyword(
(rgi->gtid_ev_flags2 & (Gtid_log_event::FL_PREPARED_XA |
Gtid_log_event::FL_COMPLETED_XA))) ||
rpl_filter->db_ok(thd->db.str))
{
bool is_rb_alter= gtid_flags_extra & Gtid_log_event::FL_ROLLBACK_ALTER_E1;
@ -2261,6 +2265,16 @@ compare_errors:
actual_error == ER_CONNECTION_KILLED)
thd->reset_killed();
}
else if (actual_error == ER_XAER_NOTA && !rpl_filter->db_ok(get_db()))
{
/*
If there is an XA query whos XID cannot be found, if the replication
filter is active and filters the target database, assume that the XID
cache has been cleared (e.g. by server restart) since it was prepared,
so we can just ignore this event.
*/
thd->clear_error(1);
}
/*
Other cases: mostly we expected no error and get one.
*/