mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 10:26:12 +01:00 
			
		
		
		
	 775cba4d0f
			
		
	
	
	775cba4d0f
	
	
	
		
			
			- 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
 |