mariadb/mysql-test/t/query_cache_limit_func.test
2008-04-10 15:14:28 +02:00

173 lines
4.8 KiB
Text

############# mysql-test\t\Query_cache_limit_func.test ########################
# #
# Variable Name: Query_cache_limit #
# Scope: SESSION #
# Access Type: Dynamic #
# Data Type: NUMERIC #
# Default Value: 1048576 #
# Min Value: 0 #
# #
# #
# Creation Date: 2008-03-02 #
# Author: Sharique Abdullah #
# #
# Description: Test Cases of Dynamic System Variable "Query_cache_limit" #
# that checks behavior of this variable in the following ways #
# * Functionality based on different values #
# #
# Reference: http://dev.mysql.com/doc/refman/5.1/en #
# /server-system-variables.html#option_mysqld_Query_cache_limit #
# #
###############################################################################
--echo ** Setup **
--echo
#
# Setup
#
SET @global_query_cache_limit = @@global.query_cache_limit;
--echo ** warnings **
--disable_warnings
DROP TABLE IF EXISTS t;
--enable_warnings
#creating table#
--echo ** creating table **
CREATE TABLE t
(
id INT AUTO_INCREMENT PRIMARY KEY,
c TEXT(30)
);
#inserting value#
--echo **inserting value **
INSERT INTO t set c = repeat('x',29);
INSERT INTO t set c = concat(repeat('x',28),'r','x');
INSERT INTO t set c = concat(repeat('x',28),'s','y');
INSERT INTO t set c = concat(repeat('x',28),'g','w');
# Reset cache & flush status
--echo ** Reset cache values **
FLUSH STATUS;
RESET QUERY CACHE;
# set query cache type value to on and allocating cache size
--echo ** On query_cache_type **
SET GLOBAL query_cache_type = ON;
--echo ** Allocating cache size **
SET GLOBAL query_cache_size = 131072;
# reset values
--echo ** Reset values
SET GLOBAL query_cache_size = 0;
SET GLOBAL query_cache_size = 131072;
SET GLOBAL query_cache_type = ON;
--echo '#---------------------FN_DYNVARS_132_01----------------------#'
#
#Check if results are cacheing on default value #
#
# Reset cache & flush status
--echo ** Reset cache values **
FLUSH STATUS;
RESET QUERY CACHE;
#fetching results#
--echo ** fetching results **
SELECT * FROM t;
# Check status
--echo ** check status on not setting query_cache_limit value **
SHOW STATUS LIKE 'Qcache_not_cached';
SHOW STATUS LIKE 'Qcache_queries_in_cache';
--echo '#---------------------FN_DYNVARS_132_02----------------------#'
#
#Check if results are cacheing on setting value to 0 i.e. no caching#
#
# Reset cache & flush status
--echo ** Reset cache values **
FLUSH STATUS;
RESET QUERY CACHE;
#set cache limit
--echo ** set cache limit **
SET @@GLOBAL.query_cache_limit=0;
#fetching results#
--echo ** fetching results **
SELECT * FROM t;
# Check status after setting value#
--echo ** Check status after setting value **
#let $newcachevalue1= query_get_value(SHOW STATUS LIKE 'Qcache_queries_in_cache', Value, 1);
SHOW STATUS LIKE 'Qcache_not_cached';
--echo 1 Expected
SHOW STATUS LIKE 'Qcache_queries_in_cache';
--echo 0 Expected
--echo '#---------------------FN_DYNVARS_132_03----------------------#'
#
# Check if setting to 0 makes any difference to the cache or not #
#
#set cache limit to default
--echo ** set cache limit **
SET @@GLOBAL.query_cache_limit=DEFAULT;
# Reset cache & flush status
--echo ** Reset cache values **
FLUSH STATUS;
RESET QUERY CACHE;
#fetching results#
--echo ** fetching results **
SELECT * FROM t;
SHOW STATUS LIKE 'Qcache_not_cached';
--echo 0 Expected
SHOW STATUS LIKE 'Qcache_queries_in_cache';
--echo 1 Expected
SET @@GLOBAL.query_cache_limit=0;
SHOW STATUS LIKE 'Qcache_not_cached';
--echo 0 Expected
SHOW STATUS LIKE 'Qcache_queries_in_cache';
--echo 1 Expected
#fetching results#
--echo ** fetching results **
SELECT * FROM t;
# Check status after setting value#
--echo ** Check status after setting value **
SHOW STATUS LIKE 'Qcache_not_cached';
--echo 0 Expected
SHOW STATUS LIKE 'Qcache_queries_in_cache';
--echo 1 Expected
#
# Cleanup
#
SET @@GLOBAL.query_cache_limit = @global_query_cache_limit;
--disable_warnings
DROP TABLE IF EXISTS t;
--enable_warnings