1############## mysql-test\t\collation_connection_func.test ################### 2# # 3# Variable Name: collation_connection # 4# Scope: GLOBAL | SESSION # 5# Access Type: Dynamic # 6# Data Type: string # 7# Default Value: # 8# Range: # 9# # 10# # 11# Creation Date: 2008-03-08 # 12# Author: Rizwan # 13# # 14# Description: Test Cases of Dynamic System Variable collation_connection # 15# that checks the behavior of this variable # 16# # 17# Reference: http://dev.mysql.com/doc/refman/5.1/en/ # 18# server-system-variables.html # 19# # 20############################################################################### 21 22--echo '#--------------------FN_DYNVARS_015_01-------------------------#' 23###################################################################### 24# Check if setting collation_connection is changed in new connection # 25###################################################################### 26SET @global_collation_connection = @@global.collation_connection; 27SET @session_collation_connection = @@session.collation_connection; 28 29SET @@global.collation_connection = latin1_danish_ci; 30--echo 'connect (con1,localhost,root,,,,)' 31connect (con1,localhost,root,,,,); 32--echo 'connection con1' 33connection con1; 34SELECT @@global.collation_connection; 35SELECT @@session.collation_connection; 36disconnect con1; 37 38--echo '#--------------------FN_DYNVARS_015_02-------------------------#' 39########################################################### 40# Begin the functionality Testing of collation_connection # 41########################################################### 42 43--echo 'connection default' 44connection default; 45 46--disable_warnings 47DROP TABLE IF EXISTS t1; 48--enable_warnings 49 50#============================================================================== 51--echo '----check if collation_connection update character_set_connection---' 52#============================================================================== 53 54SET @@session.collation_connection = utf8_spanish_ci; 55SELECT @@collation_connection, @@character_set_database; 56 57#============================================================================== 58--echo '---check if collation_connection works for literal string comparision--' 59#============================================================================== 60SET @@session.collation_connection = latin1_swedish_ci; 61SELECT 'mysql'='MySql'; 62SELECT _latin2'mysql' COLLATE latin2_general_ci='MySql'; 63SELECT _utf8'mysql'=_utf8'MySql' COLLATE utf8_unicode_ci; 64 65SET @@session.collation_connection = latin1_general_cs; 66SELECT 'mysql'='MySql'; 67SELECT _latin2'mysql'COLLATE latin2_general_ci='MySql'; 68--Error ER_CANT_AGGREGATE_2COLLATIONS 69SELECT _utf8'mysql'COLLATE utf8_danish_ci=_utf8'MySql'COLLATE utf8_unicode_ci; 70 71#============================================================================== 72--echo '---collation_connection does not effect comparision with column---' 73#============================================================================== 74# fill table with some test data 75CREATE TABLE t1(a CHAR(20)CHARACTER SET latin1 COLLATE latin1_german2_ci); 76INSERT INTO t1 VALUES('M�ller'); 77 78 79SET @@session.collation_connection = latin2_hungarian_ci; 80SELECT * FROM t1 WHERE a='M�ller'; 81 82SET @@session.collation_connection = latin1_general_cs; 83SELECT * FROM t1 WHERE a='m�ller'; 84 85--echo 'check if string literal collation is used'; 86SELECT * FROM t1 WHERE a='m�ller' COLLATE latin1_general_cs; 87SELECT * FROM t1 WHERE a='m�ller' COLLATE latin1_german1_ci; 88 89# clean up 90DROP TABLE t1; 91SET @@global.collation_connection = @global_collation_connection; 92SET @@session.collation_connection = @session_collation_connection; 93######################################################### 94# End of functionality Testing for collation_connection # 95######################################################### 96