Commit 0269d491 authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-27047: Replication fails to remove affected queries from query cache

Rows_log_event::do_apply_event(): Correct the mistake that was made in
the merge 5f8561a6.

In Galera, the query cache will be invalidated near the end
of the function.
parent 079516f0
include/master-slave.inc
[connection master]
connection slave;
SET @qtype= @@global.query_cache_type;
SET GLOBAL query_cache_type= ON;
SET query_cache_type= ON;
connection master;
create table t1 (i int) engine=innodb;
insert into t1 set i=1;
connection slave;
select * from t1;
i
1
connection master;
insert into t1 set i=2;
connection slave;
select * from t1;
i
1
2
select sql_no_cache * from t1;
i
1
2
connection master;
DROP TABLE t1;
connection slave;
SET GLOBAL query_cache_type= @qtype;
include/rpl_end.inc
-- source include/have_binlog_format_row.inc
-- source include/have_innodb.inc
-- source include/master-slave.inc
--connection slave
SET @qtype= @@global.query_cache_type;
SET GLOBAL query_cache_type= ON;
SET query_cache_type= ON;
--connection master
create table t1 (i int) engine=innodb;
insert into t1 set i=1;
--sync_slave_with_master
select * from t1;
--connection master
insert into t1 set i=2;
--sync_slave_with_master
select * from t1;
select sql_no_cache * from t1;
--connection master
DROP TABLE t1;
--sync_slave_with_master
SET GLOBAL query_cache_type= @qtype;
--source include/rpl_end.inc
......@@ -5573,14 +5573,16 @@ int Rows_log_event::do_apply_event(rpl_group_info *rgi)
}
}
#if defined(WITH_WSREP) && defined(HAVE_QUERY_CACHE)
#ifdef HAVE_QUERY_CACHE
/*
Moved invalidation right before the call to rows_event_stmt_cleanup(),
to avoid query cache being polluted with stale entries,
*/
if (WSREP(thd) && wsrep_thd_is_applying(thd))
# ifdef WITH_WSREP
if (!WSREP(thd) && !wsrep_thd_is_applying(thd))
# endif /* WITH_WSREP */
query_cache.invalidate_locked_for_write(thd, rgi->tables_to_lock);
#endif /* WITH_WSREP && HAVE_QUERY_CACHE */
#endif /* HAVE_QUERY_CACHE */
}
table= m_table= rgi->m_table_map.get_table(m_table_id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment