mirror of
https://github.com/MariaDB/server.git
synced 2025-02-23 05:43:08 +01:00

- FLUSH GLOBAL STATUS now resets most global_status_vars. At this stage, this is mainly to be used for testing. - FLUSH SESSION STATUS added as an alias for FLUSH STATUS. - FLUSH STATUS does not require any privilege (before required RELOAD). - FLUSH GLOBAL STATUS requires RELOAD privilege. - All global status reset moved to FLUSH GLOBAL STATUS. - Replication semisync status variables are now reset by FLUSH GLOBAL STATUS. - In test cases, the only changes are: - Replace FLUSH STATUS with FLUSH GLOBAL STATUS - Replace FLUSH STATUS with FLUSH STATUS; FLUSH GLOBAL STATUS. This was only done in a few tests where the test was using SHOW STATUS for both local and global variables. - Uptime_since_flush_status is now always provided, independent if ENABLED_PROFILING is enabled when compiling MariaDB. - @@global.Uptime_since_flush_status is reset on FLUSH GLOBAL STATUS and @@session.Uptime_since_flush_status is reset on FLUSH SESSION STATUS. - When connected, @@session.Uptime_since_flush_status is set to 0.
70 lines
2.1 KiB
Text
70 lines
2.1 KiB
Text
--source include/have_query_cache.inc
|
|
--source include/galera_cluster.inc
|
|
--source include/have_innodb.inc
|
|
|
|
--disable_ps2_protocol
|
|
|
|
#
|
|
# Ensure that the query cache behaves properly with respect to Galera
|
|
#
|
|
# * in the absence of updates, the query cache does serve cached results
|
|
# * any cache-invalidating query on the remote node also causes the local cache to be invalidated
|
|
#
|
|
|
|
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES (1);
|
|
|
|
--connection node_2
|
|
RESET QUERY CACHE;
|
|
FLUSH GLOBAL STATUS;
|
|
|
|
#
|
|
# 1. Cache works
|
|
#
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache';
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits';
|
|
|
|
#
|
|
# 2. Cache is invalidated by DML on remote node
|
|
#
|
|
|
|
--connection node_1
|
|
INSERT INTO t1 VALUES (2);
|
|
|
|
--connection node_2
|
|
FLUSH GLOBAL STATUS;
|
|
|
|
SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache';
|
|
SELECT COUNT(*) FROM t1;
|
|
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache';
|
|
|
|
SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits';
|
|
SELECT COUNT(*) FROM t1;
|
|
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits';
|
|
|
|
#
|
|
# 3. Cache is invalidated by DDL on remote node
|
|
#
|
|
|
|
--connection node_1
|
|
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
|
|
|
|
--connection node_2
|
|
FLUSH GLOBAL STATUS;
|
|
|
|
SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache';
|
|
SELECT COUNT(*) FROM t1;
|
|
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache';
|
|
|
|
SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits';
|
|
SELECT COUNT(*) FROM t1;
|
|
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits';
|
|
|
|
DROP TABLE t1;
|
|
|
|
--enable_ps2_protocol
|