mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	mysql-test/r/query_cache_wlock_invalidate_func.result: Adjusted test. Query cache doesn't support multiple statements and thus using a delimiter change won't work. mysql-test/t/disabled.def: Enabled the query_cache_wlock_invalidate_func test. mysql-test/t/query_cache_wlock_invalidate_func.test: Adjusted test. Query cache doesn't support multiple statements and thus using a delimiter change won't work.
		
			
				
	
	
		
			286 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			286 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
############# mysql-test\t\query_cache_wlock_invalidate_func.test ####################
 | 
						|
#                                                                                    #
 | 
						|
# Variable Name: query_cache_wlock_invalidate                                        #
 | 
						|
# Scope: GLOBAL & SESSION                                                            #
 | 
						|
# Access Type: Dynamic                                                               #
 | 
						|
# Data Type: boolean                                                                 #
 | 
						|
# Default Value: FALSE                                                               #
 | 
						|
# Values: TRUE / 1, FALSE / 0                                                        #
 | 
						|
#                                                                                    #
 | 
						|
#                                                                                    #
 | 
						|
# Creation Date: 2008-02-21                                                          #
 | 
						|
# Author:  Sharique Abdullah                                                         #
 | 
						|
#                                                                                    #
 | 
						|
# Description: Test Cases of Dynamic System Variable "query_cache_wlock_invalidate"  #
 | 
						|
#              that checks behavior of this variable in the following ways           #
 | 
						|
#              * Default Value                                                       #
 | 
						|
#              * Valid & Invalid values                                              #
 | 
						|
#              * Scope & Access method                                               #
 | 
						|
#              * Cache behaviors                                                     #
 | 
						|
#                                                                                    #
 | 
						|
# Reference: http://dev.mysql.com/doc/refman/5.1/en/                                 #
 | 
						|
#            server-system-variables.html#option_mysqld_query_cache_wlock_invalidate #
 | 
						|
#                                                                                    #
 | 
						|
######################################################################################
 | 
						|
 | 
						|
--echo ** Setup **
 | 
						|
--echo
 | 
						|
#
 | 
						|
# Setup
 | 
						|
#
 | 
						|
 | 
						|
# disabled due to differences in the result
 | 
						|
--disable_ps_protocol
 | 
						|
#
 | 
						|
# Save initial value
 | 
						|
#
 | 
						|
--echo ** Connecting con0 using root **
 | 
						|
connect (con0,localhost,root,,);
 | 
						|
--echo ** Connecting con1 using root **
 | 
						|
connect (con1, localhost, root,,);
 | 
						|
--echo ** Connection con0 **
 | 
						|
connection con0;
 | 
						|
 | 
						|
SET @start_global_value = @@GLOBAL.query_cache_wlock_invalidate;
 | 
						|
SET @start_session_value = @@SESSION.query_cache_wlock_invalidate;
 | 
						|
 | 
						|
SET @old_cache_size = @@GLOBAL.query_cache_size;
 | 
						|
SET @old_cache_type = @@GLOBAL.query_cache_type;
 | 
						|
 | 
						|
#
 | 
						|
# Creating test table
 | 
						|
#
 | 
						|
 | 
						|
CREATE TABLE t1(id int, value varchar(10));
 | 
						|
 | 
						|
INSERT INTO t1 VALUES(1, 'val1');
 | 
						|
INSERT INTO t1 VALUES(2, 'val2');
 | 
						|
INSERT INTO t1 VALUES(3, 'val3');
 | 
						|
 | 
						|
#
 | 
						|
# Clearing the query cache and setting up cache size
 | 
						|
#
 | 
						|
 | 
						|
SET GLOBAL query_cache_size = 131072;
 | 
						|
 | 
						|
--echo FLUSHING CACHE
 | 
						|
SET GLOBAL query_cache_size = 0;
 | 
						|
SET GLOBAL query_cache_size = 131072;
 | 
						|
 | 
						|
SET GLOBAL query_cache_type = ON;
 | 
						|
 | 
						|
#
 | 
						|
# Testing for value ON
 | 
						|
#
 | 
						|
--echo Testing for value ON
 | 
						|
 | 
						|
--echo ** Connection con0 **
 | 
						|
connection con0;
 | 
						|
 | 
						|
SET SESSION query_cache_wlock_invalidate = ON;
 | 
						|
 | 
						|
--echo ** Connection con1 **
 | 
						|
connection con1;
 | 
						|
 | 
						|
SET SESSION query_cache_wlock_invalidate = ON;
 | 
						|
 | 
						|
--echo '#----------------------------FN_DYNVARS_136_01--------------#'
 | 
						|
#
 | 
						|
# Testing for cache invalidation
 | 
						|
#
 | 
						|
 | 
						|
--echo Testing for cache invalidation
 | 
						|
 | 
						|
SELECT * FROM t1;
 | 
						|
 | 
						|
SHOW STATUS LIKE 'Qcache_queries_in_cache';
 | 
						|
--echo 1 Expected
 | 
						|
 | 
						|
LOCK TABLE t1 WRITE;
 | 
						|
 | 
						|
UNLOCK TABLES;
 | 
						|
 | 
						|
SHOW STATUS LIKE 'Qcache_queries_in_cache';
 | 
						|
--echo 0 Expected
 | 
						|
 | 
						|
--echo '#----------------------------FN_DYNVARS_136_02-----------------------#'
 | 
						|
#
 | 
						|
# Testing for blockage of access
 | 
						|
#
 | 
						|
 | 
						|
disable_result_log;
 | 
						|
 | 
						|
SELECT * FROM t1;
 | 
						|
 | 
						|
SHOW STATUS LIKE 'Qcache_queries_in_cache';
 | 
						|
 | 
						|
enable_result_log;
 | 
						|
 | 
						|
--echo ** Connection con1 **
 | 
						|
connection con1;
 | 
						|
 | 
						|
SELECT * FROM t1;
 | 
						|
 | 
						|
--echo ** Connection con0 **
 | 
						|
connection con0;
 | 
						|
 | 
						|
LOCK TABLE t1 WRITE;
 | 
						|
 | 
						|
--echo ** Connection con1 **
 | 
						|
connection con1;
 | 
						|
 | 
						|
--echo ** Asynchronous Execution **
 | 
						|
send SELECT * FROM t1;
 | 
						|
 | 
						|
--echo ** Connection con0 **
 | 
						|
connection con0;
 | 
						|
 | 
						|
--echo Sleeping 2 Seconds before unlock
 | 
						|
--sleep 2
 | 
						|
UNLOCK TABLES;
 | 
						|
 | 
						|
--echo ** Connection con1 **
 | 
						|
connection con1;
 | 
						|
--echo ** Asynchronous Result **
 | 
						|
reap;
 | 
						|
 | 
						|
#
 | 
						|
# Testing for value OFF
 | 
						|
#
 | 
						|
--echo Testing for value OFF
 | 
						|
 | 
						|
--echo ** Connection con0 **
 | 
						|
connection con0;
 | 
						|
 | 
						|
SET SESSION query_cache_wlock_invalidate = OFF;
 | 
						|
 | 
						|
--echo ** Connection con1 **
 | 
						|
connection con1;
 | 
						|
 | 
						|
SET SESSION query_cache_wlock_invalidate = OFF;
 | 
						|
 | 
						|
--echo '#----------------------------FN_DYNVARS_136_03------------------#'
 | 
						|
#
 | 
						|
# Testing for cache invalidation
 | 
						|
#
 | 
						|
 | 
						|
--echo Testing for cache invalidation
 | 
						|
 | 
						|
SELECT * FROM t1;
 | 
						|
 | 
						|
SHOW STATUS LIKE 'Qcache_queries_in_cache';
 | 
						|
--echo 1 Expected
 | 
						|
 | 
						|
LOCK TABLE t1 WRITE;
 | 
						|
 | 
						|
UNLOCK TABLES;
 | 
						|
 | 
						|
SHOW STATUS LIKE 'Qcache_queries_in_cache';
 | 
						|
--echo 1 Expected
 | 
						|
 | 
						|
--echo '#----------------------------FN_DYNVARS_136_04---------------------#'
 | 
						|
#
 | 
						|
# Testing for blockage of access
 | 
						|
#
 | 
						|
 | 
						|
SELECT * FROM t1;
 | 
						|
 | 
						|
SHOW STATUS LIKE 'Qcache_queries_in_cache';
 | 
						|
--echo 1 Expected
 | 
						|
 | 
						|
--echo ** Connection con1 **
 | 
						|
connection con1;
 | 
						|
 | 
						|
SELECT * FROM t1;
 | 
						|
 | 
						|
--echo ** Connection con0 **
 | 
						|
connection con0;
 | 
						|
 | 
						|
LOCK TABLE t1 WRITE;
 | 
						|
 | 
						|
--echo ** Connection con1 **
 | 
						|
connection con1;
 | 
						|
 | 
						|
--echo ** Should not be blocked **
 | 
						|
SELECT * FROM t1;
 | 
						|
 | 
						|
--echo ** Connection con0 **
 | 
						|
connection con0;
 | 
						|
 | 
						|
--echo Sleeping 2 Seconds before unlock
 | 
						|
--sleep 2
 | 
						|
UNLOCK TABLES;
 | 
						|
 | 
						|
--echo ** Connection con1 **
 | 
						|
connection con1;
 | 
						|
 | 
						|
--echo '#----------------------------FN_DYNVARS_136_05------------------------#'
 | 
						|
#
 | 
						|
# Session data integrity check & GLOBAL Value check
 | 
						|
#
 | 
						|
 | 
						|
SET GLOBAL query_cache_wlock_invalidate = OFF;
 | 
						|
 | 
						|
--echo ** Connecting con_int1 using root **
 | 
						|
connect (con_int1,localhost,root,,);
 | 
						|
--echo ** Connection con_int1 **
 | 
						|
connection con_int1;
 | 
						|
 | 
						|
SELECT @@SESSION.query_cache_wlock_invalidate;
 | 
						|
--echo Expected Value : 0 / OFF;
 | 
						|
SET SESSION query_cache_wlock_invalidate = ON;
 | 
						|
 | 
						|
--echo ** Connecting con_int2 using root **
 | 
						|
connect (con_int2,localhost,root,,);
 | 
						|
--echo ** Connection con_int2 **
 | 
						|
connection con_int2;
 | 
						|
 | 
						|
SELECT @@SESSION.query_cache_wlock_invalidate;
 | 
						|
--echo Expected Value : 0 / OFF;
 | 
						|
 | 
						|
SET SESSION query_cache_wlock_invalidate = OFF;
 | 
						|
 | 
						|
--echo ** Connection con_int1 **
 | 
						|
connection con_int1;
 | 
						|
SELECT @@SESSION.query_cache_wlock_invalidate;
 | 
						|
--echo Expected Value : 1 / ON;
 | 
						|
 | 
						|
--echo ** Connection con_int2 **
 | 
						|
connection con_int2;
 | 
						|
SELECT @@SESSION.query_cache_wlock_invalidate;
 | 
						|
--echo Expected Value : 0 / OFF;
 | 
						|
 | 
						|
SELECT @@GLOBAL.query_cache_wlock_invalidate;
 | 
						|
--echo Expected Value : 0 / OFF;
 | 
						|
 | 
						|
--echo ** Connection default **
 | 
						|
connection default;
 | 
						|
--echo Disconnecting Connections con_int1, con_int2
 | 
						|
disconnect con_int1;
 | 
						|
disconnect con_int2;
 | 
						|
 | 
						|
#
 | 
						|
# Cleanup
 | 
						|
#
 | 
						|
--echo
 | 
						|
--echo CLEANUP
 | 
						|
 | 
						|
--echo ** Connection con0 **
 | 
						|
connection con0;
 | 
						|
 | 
						|
SET @@GLOBAL.query_cache_wlock_invalidate = @start_global_value;
 | 
						|
SET @@SESSION.query_cache_wlock_invalidate = @start_session_value ;
 | 
						|
SET @@GLOBAL.query_cache_size = @old_cache_size;
 | 
						|
SET @@GLOBAL.query_cache_type = @old_cache_type;
 | 
						|
 | 
						|
--echo ** Connection default **
 | 
						|
connection default;
 | 
						|
--echo Disconnecting Connections con0, con1
 | 
						|
disconnect con0;
 | 
						|
disconnect con1;
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
--enable_ps_protocol
 | 
						|
 |