Commit d526b752 authored by unknown's avatar unknown

Seventh set of fixes for bug 35988.

parent 476a5c13
** Setup **
** Connecting con0 using root **
** Connecting con1 using root **
** 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;
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');
SET GLOBAL query_cache_size = 131072;
FLUSHING CACHE
SET GLOBAL query_cache_size = 0;
SET GLOBAL query_cache_size = 131072;
SET GLOBAL query_cache_type = ON;
Testing for value ON
** Connection con0 **
SET SESSION query_cache_wlock_invalidate = ON;
** Connection con1 **
SET SESSION query_cache_wlock_invalidate = ON;
'#----------------------------FN_DYNVARS_136_01--------------#'
Testing for cache invalidation
SELECT * FROM t1;
id value
1 val1
2 val2
3 val3
SHOW STATUS LIKE 'Qcache_queries_in_cache';
Variable_name Value
Qcache_queries_in_cache 1
1 Expected
LOCK TABLE t1 WRITE;
UNLOCK TABLES;
SHOW STATUS LIKE 'Qcache_queries_in_cache';
Variable_name Value
Qcache_queries_in_cache 0
0 Expected
'#----------------------------FN_DYNVARS_136_02-----------------------#'
SELECT * FROM t1;
SHOW STATUS LIKE 'Qcache_queries_in_cache';
** Connection con1 **
SELECT * FROM t1;
id value
1 val1
2 val2
3 val3
** Connection con0 **
LOCK TABLE t1 WRITE;
** Connection con1 **
** Asynchronous Execution **
SET @startTime = NOW();
SELECT * FROM t1;
SET @endTime = NOW();
SET @TimeDifference = TIME_TO_SEC(TIMEDIFF(@endTime, @startTime)) >= 2;
SELECT @TimeDifference;|
** Connection con0 **
Sleeping 2 Seconds before unlock
UNLOCK TABLES;
** Connection con1 **
** Asynchronous Result **
id value
1 val1
2 val2
3 val3
@TimeDifference
1
Testing for value OFF
** Connection con0 **
SET SESSION query_cache_wlock_invalidate = OFF;
** Connection con1 **
SET SESSION query_cache_wlock_invalidate = OFF;
'#----------------------------FN_DYNVARS_136_03------------------#'
Testing for cache invalidation
SELECT * FROM t1;
id value
1 val1
2 val2
3 val3
SHOW STATUS LIKE 'Qcache_queries_in_cache';
Variable_name Value
Qcache_queries_in_cache 1
1 Expected
LOCK TABLE t1 WRITE;
UNLOCK TABLES;
SHOW STATUS LIKE 'Qcache_queries_in_cache';
Variable_name Value
Qcache_queries_in_cache 1
1 Expected
'#----------------------------FN_DYNVARS_136_04---------------------#'
SELECT * FROM t1;
SHOW STATUS LIKE 'Qcache_queries_in_cache';
** Connection con1 **
SELECT * FROM t1;
id value
1 val1
2 val2
3 val3
** Connection con0 **
LOCK TABLE t1 WRITE;
** Connection con1 **
** Asynchronous Execution **
SET @startTime = NOW();
SELECT * FROM t1;
SET @endTime = NOW();
SET @TimeDifference = TIME_TO_SEC(TIMEDIFF(@endTime, @startTime));
SELECT @TimeDifference;|
** Connection con0 **
Sleeping 2 Seconds before unlock
UNLOCK TABLES;
** Connection con1 **
** Asynchronous Result **
id value
1 val1
2 val2
3 val3
@TimeDifference
2
'Bug#35390 the time difference should not be 2 seconds in this case,'
'it should be less than a second;'
'#----------------------------FN_DYNVARS_136_05------------------------#'
SET GLOBAL query_cache_wlock_invalidate = OFF;
** Connecting con_int1 using root **
** Connection con_int1 **
SELECT @@SESSION.query_cache_wlock_invalidate;
@@SESSION.query_cache_wlock_invalidate
0
Expected Value : 0 / OFF;
SET SESSION query_cache_wlock_invalidate = ON;
** Connecting con_int2 using root **
** Connection con_int2 **
SELECT @@SESSION.query_cache_wlock_invalidate;
@@SESSION.query_cache_wlock_invalidate
0
Expected Value : 0 / OFF;
SET SESSION query_cache_wlock_invalidate = OFF;
** Connection con_int1 **
SELECT @@SESSION.query_cache_wlock_invalidate;
@@SESSION.query_cache_wlock_invalidate
1
Expected Value : 1 / ON;
** Connection con_int2 **
SELECT @@SESSION.query_cache_wlock_invalidate;
@@SESSION.query_cache_wlock_invalidate
0
Expected Value : 0 / OFF;
SELECT @@GLOBAL.query_cache_wlock_invalidate;
@@GLOBAL.query_cache_wlock_invalidate
0
Expected Value : 0 / OFF;
** Connection default **
Disconnecting Connections con_int1, con_int2
CLEANUP
** 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;
** Connection default **
Disconnecting Connections con0, con1
DROP TABLE t1;
** Setup **
** Connecting con0 using root **
** Connecting con1 using root **
'#-----------------------------FN_DYNVARS_179_01------------------#'
** Connection con0 **
SET @ts_old = @@SESSION.timestamp;
waiting 1 sec
SET @ts_new = @@SESSION.timestamp;
SELECT @ts_new - @ts_old AS 'Timestamp Difference';
Timestamp Difference
1
1 Expected
** Connection con1 **
SET @ts_old = @@SESSION.timestamp;
waiting 4 sec
SET @ts_new = @@SESSION.timestamp;
SELECT @ts_new - @ts_old AS 'Timestamp Difference';
Timestamp Difference
4
4 Expected
'#-----------------------------FN_DYNVARS_179_02---------------------#'
SET @ts_old = @@SESSION.timestamp;
Changing time zone
SET time_zone = 'MET';
SET @ts_new = @@SESSION.timestamp;
SELECT @ts_new - @ts_old >= 1 AS 'Timestamp Difference';
Timestamp Difference
1
>=1 Expected
** Cleanup **
** Connection default **
Disconnecting Connections con0, con1
################# mysql-test\t\innodb_table_locks_func.test ##################
# #
# Variable Name: innodb_table_locks #
# Scope: GLOBAL | SESSION #
# Access Type: Dynamic #
# Data Type: boolean #
# Default Value: 1 #
# Range: 0,1 #
# #
# #
# Creation Date: 2008-03-08 #
# Author: Rizwan #
# #
# Description: Test Cases of Dynamic System Variable innodb_table_locks #
# that checks the behavior of this variable #
# #
# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
# server-system-variables.html #
# #
###############################################################################
--source include/not_embedded.inc
--source include/have_innodb.inc
--echo '#--------------------FN_DYNVARS_048_01-------------------------#'
####################################################################
# Check if setting innodb_table_locks is changed in new connection #
####################################################################
SET @@global.innodb_table_locks = OFF;
--echo 'connect (con1,localhost,root,,,,)'
connect (con1,localhost,root,,,,);
--echo 'connection con1'
connection con1;
SELECT @@global.innodb_table_locks;
SELECT @@session.innodb_table_locks;
disconnect con1;
--echo '#--------------------FN_DYNVARS_048_02-------------------------#'
###########################################################
# Begin the functionality Testing of innodb_table_locks #
###########################################################
#==============================================================================
--echo '----check when innodb_table_locks = ON and autocommit = OFF---'
#==============================================================================
--echo 'connect (con2,localhost,root,,,,)'
connect (con2,localhost,root,,,,);
--echo 'connection default'
connection default;
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
CREATE TABLE t1 (a INT) ENGINE=INNODB;
SET @@autocommit = OFF;
SET @@innodb_table_locks = ON;
BEGIN;
INSERT INTO t1 VALUES(1);
SELECT * FROM t1 FOR UPDATE;
--echo 'CONNECTION con2'
CONNECTION con2;
SET @@innodb_table_locks = ON;
SET @@autocommit = OFF;
send LOCK TABLES t1 WRITE;
--echo 'CONNECTION default'
CONNECTION default;
COMMIT;
--echo 'CONNECTION con2'
CONNECTION con2;
UNLOCK tables;
DROP TABLE t1;
disconnect con2;
##########################################################
# End of functionality Testing for innodb_table_locks #
##########################################################
############# 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 **
delimiter |;
send
SET @startTime = NOW();
SELECT * FROM t1;
SET @endTime = NOW();
SET @TimeDifference = TIME_TO_SEC(TIMEDIFF(@endTime, @startTime)) >= 2;
SELECT @TimeDifference;|
delimiter ;|
--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
#
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 **
delimiter |;
send
SET @startTime = NOW();
SELECT * FROM t1;
SET @endTime = NOW();
SET @TimeDifference = TIME_TO_SEC(TIMEDIFF(@endTime, @startTime));
SELECT @TimeDifference;|
delimiter ;|
--echo ** Connection con0 **
connection con0;
--echo Sleeping 2 Seconds before unlock
--sleep 2
UNLOCK TABLES;
--echo ** Connection con1 **
connection con1;
--echo ** Asynchronous Result **
reap;
--echo 'Bug#35390 the time difference should not be 2 seconds in this case,'
--echo 'it should be less than a second;'
--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
############# mysql-test\t\timestamp_func.test #############################
# #
# Variable Name: timestamp #
# Scope: GLOBAL #
# Access Type: Dynamic #
# Data Type: INTEGER #
# #
# #
# Creation Date: 2008-02-25 #
# Author: Sharique Abdullah #
# #
# Description: Test Cases of Dynamic System Variable "timestamp" #
# 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/set-option.html #
# #
############################################################################
--echo ** Setup **
--echo
#
# Setup
#
--echo ** Connecting con0 using root **
connect (con0,localhost,root,,);
--echo ** Connecting con1 using root **
connect (con1, localhost, root,,);
--echo '#-----------------------------FN_DYNVARS_179_01------------------#'
#
# Checking for connection 1
#
--echo ** Connection con0 **
connection con0;
SET @ts_old = @@SESSION.timestamp;
--echo waiting 1 sec
--sleep 1
SET @ts_new = @@SESSION.timestamp;
SELECT @ts_new - @ts_old AS 'Timestamp Difference';
--echo 1 Expected
#
# Checking for connection 2
#
--echo ** Connection con1 **
connection con1;
SET @ts_old = @@SESSION.timestamp;
--echo waiting 4 sec
--sleep 4
SET @ts_new = @@SESSION.timestamp;
SELECT @ts_new - @ts_old AS 'Timestamp Difference';
--echo 4 Expected
--echo '#-----------------------------FN_DYNVARS_179_02---------------------#'
#
# Testing timezone change effect
#
SET @ts_old = @@SESSION.timestamp;
--sleep 1
--echo Changing time zone
SET time_zone = 'MET';
SET @ts_new = @@SESSION.timestamp;
SELECT @ts_new - @ts_old >= 1 AS 'Timestamp Difference';
--echo >=1 Expected
#
# Cleanup
#
--echo ** Cleanup **
--echo ** Connection default **
connection default;
--echo Disconnecting Connections con0, con1
disconnect con0;
disconnect con1;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment