mirror of
https://github.com/MariaDB/server.git
synced 2025-10-25 00:48:31 +02: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
|