mariadb/mysql-test/t/query_cache_wlock_invalidate_func.test
unknown 726817e676 Adjusted a filaing test and re-enabled it.
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.
2008-05-06 16:17:23 +02:00

285 lines
7 KiB
Text

############# 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