summaryrefslogtreecommitdiff
path: root/sql/log_event.cc
diff options
context:
space:
mode:
authorsjaakola <seppo.jaakola@iki.fi>2021-01-14 18:18:06 +0200
committerJan Lindström <jan.lindstrom@mariadb.com>2021-01-19 12:12:10 +0200
commit7d04ce6a2d42770fcc765d257c0058a859180b80 (patch)
treedb6c78ad5678e47c9fb64445cd0fe6b64c39c73c /sql/log_event.cc
parent049811ec3c7994425410056d5a4f7618a2835b36 (diff)
downloadmariadb-git-7d04ce6a2d42770fcc765d257c0058a859180b80.tar.gz
MDEV-21153 Replica nodes crash due to indexed virtual columns and FK cascading deletebb-10.3-MDEV-21153
Fix for MDEV-23033 fixes a problem in replication applying of transactions, which contain cascading foreign key delete for a table, which has indexed virtual column. This fix adds slave_fk_event_map flag for table, to mark when the prelocking is needed for applying of a transaction. See commit 608b0ee52ef3e854ce14a407e64e936adbbeba23 for more details. However, this fix is targeted for async replication only, Rows_log_event::do_apply_event() has condition to rule out galera replication from the fix domain, and use cases suffering from MDEV-23033 and related MDEV-21153 will fail in galera cluster. The fix in this commit removes the condition to rule out the setting of slave_fk_event_map flag from galera replication, and makes the fix in MDEV-23033 effective for galera replication as well. Finally, a mtr test for virtual column support has been added. galera.galera_virtual_column.test has as first test a scenario from MDEV-21153 Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
Diffstat (limited to 'sql/log_event.cc')
-rw-r--r--sql/log_event.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 48a25c8ba3d..e344fc8894f 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -11357,7 +11357,7 @@ int Rows_log_event::do_apply_event(rpl_group_info *rgi)
tables->trg_event_map= new_trg_event_map;
lex->query_tables_last= &tables->next_global;
}
- else if (!WSREP_ON)
+ else
{
tables->slave_fk_event_map= new_trg_event_map;
lex->query_tables_last= &tables->next_global;