############## mysql-test\t\character_set_client_basic.test ################### # # # Variable Name: character_set_client # # Scope: GLOBAL | SESSION # # Access Type: Dynamic # # Data Type: string # # Default Value: utf8 (session), latin1 (global) # # Range: NA # # # # # # Creation Date: 2008-02-07 # # Author: Rizwan # # # # Description: Test Cases of Dynamic System Variable character_set_client # # that checks the behavior of this variable in the following ways# # * Default Value # # * Valid & Invalid values # # * Scope & Access method # # * Data Integrity # # # # Reference: http://dev.mysql.com/doc/refman/5.1/en/ # # server-system-variables.html # # # ############################################################################### --source include/have_big5.inc --source include/have_ujis.inc --source include/have_sjis.inc --source include/have_utf8.inc --source include/have_ucs2.inc --source include/have_utf8mb4.inc --source include/have_utf16.inc --source include/have_utf32.inc --source include/load_sysvars.inc ################################################### ## START OF character_set_client TESTS ## ################################################### ############################################################# # Save initial value # ############################################################# SET @global_start_value = @@global.character_set_client; SELECT @global_start_value; # Save initial session value SET @session_start_value = @@character_set_client; SELECT @session_start_value; # now save using local access SET @session_start_value = @@local.character_set_client; SELECT @session_start_value; # save using default access (session) SET @session_start_value = @@session.character_set_client; SELECT @session_start_value; --echo '#--------------------FN_DYNVARS_010_01------------------#' ############################################################################### # Test Variable access and assignment with and withoud @@ # ############################################################################### # select without @@ --error ER_BAD_FIELD_ERROR SELECT character_set_client; # assign value without @@ SET character_set_client=utf8; SELECT @@session.character_set_client; # assign global variable without @@ --Error ER_PARSE_ERROR SET global.character_set_client=utf8; # using another syntax for accessing session variable SET session character_set_client=utf8; # accessing variable with scope the wrong way --Error ER_BAD_FIELD_ERROR SELECT session character_set_client; # using another syntax for accessing dynamic variable SET global character_set_client=utf8; --Error ER_BAD_FIELD_ERROR SELECT global character_set_client; --echo '#--------------------FN_DYNVARS_010_02-------------------------#' ############################################################################### # Check the DEFAULT value of character_set_client for session and global # ############################################################################### SET @@character_set_client = latin5; SET @@character_set_client = DEFAULT; SELECT @@character_set_client AS DEFAULT_VALUE; SET @@global.character_set_client = latin5; SET @@global.character_set_client = DEFAULT; SELECT @@global.character_set_client; --echo '#--------------------FN_DYNVARS_010_03-------------------------#' ############################################################################### # see if setting global value changes session value and vice versa # ############################################################################### SET @@session.character_set_client = utf8; SELECT @@session.character_set_client; SET @@global.character_set_client = latin2; SELECT @@global.character_set_client; SELECT @@session.character_set_client AS res_is_utf8; SET @@session.character_set_client = latin5; SELECT @@session.character_set_client; SELECT @@global.character_set_client AS res_is_latin2; # composite check SELECT @@global.character_set_client=@@session.character_set_client AS res_is_false; --echo '#--------------------FN_DYNVARS_010_04-------------------------#' ############################################################################## # Check if accessing variable with and without session point to session # # variable # ############################################################################## SELECT @@character_set_client = @@session.character_set_client AS res; SELECT @@character_set_client = @@local.character_set_client AS res; --echo '#--------------------FN_DYNVARS_010_05-------------------------#' ########################################################################### # Check if combining character set works # ########################################################################### --Error ER_BAD_FIELD_ERROR SET @@character_set_client = utf8 + latin2; --echo '#--------------------FN_DYNVARS_010_06-------------------------#' ############################################################################## # Change the value of character_set_client to a valid value for session # ############################################################################## SET @@character_set_client = big5; SELECT @@character_set_client; SET @@character_set_client = dec8; SELECT @@character_set_client; SET @@character_set_client = cp850; SELECT @@character_set_client; SET @@character_set_client = hp8; SELECT @@character_set_client; SET @@character_set_client = koi8r; SELECT @@character_set_client; SET @@character_set_client = latin1; SELECT @@character_set_client; SET @@character_set_client = latin2; SELECT @@character_set_client; SET @@character_set_client = swe7; SELECT @@character_set_client; SET @@character_set_client = ascii; SELECT @@character_set_client; SET @@character_set_client = ujis; SELECT @@character_set_client; SET @@character_set_client = sjis; SELECT @@character_set_client; SET @@character_set_client = hebrew; SELECT @@character_set_client; SET @@character_set_client = tis620; SELECT @@character_set_client; SET @@character_set_client = euckr; SELECT @@character_set_client; SET @@character_set_client = koi8u; SELECT @@character_set_client; SET @@character_set_client = gb2312; SELECT @@character_set_client; SET @@character_set_client = greek; SELECT @@character_set_client; SET @@character_set_client = cp1250; SELECT @@character_set_client; SET @@character_set_client = gbk; SELECT @@character_set_client; SET @@character_set_client = latin5; SELECT @@character_set_client; SET @@character_set_client = armscii8; SELECT @@character_set_client; SET @@character_set_client = utf8; SELECT @@character_set_client; SET @@character_set_client = utf8mb4; SELECT @@character_set_client; --error ER_WRONG_VALUE_FOR_VAR SET @@character_set_client = ucs2; --error ER_WRONG_VALUE_FOR_VAR SET @@character_set_client = utf16; --error ER_WRONG_VALUE_FOR_VAR SET @@character_set_client = utf32; SET @@character_set_client = cp866; SELECT @@character_set_client; SET @@character_set_client = keybcs2; SELECT @@character_set_client; SET @@character_set_client = macce; SELECT @@character_set_client; SET @@character_set_client = macroman; SELECT @@character_set_client; SET @@character_set_client = cp852; SELECT @@character_set_client; SET @@character_set_client = latin7; SELECT @@character_set_client; SET @@character_set_client = cp1251; SELECT @@character_set_client; SET @@character_set_client = cp1256; SELECT @@character_set_client; SET @@character_set_client = cp1257; SELECT @@character_set_client; SET @@character_set_client = binary; SELECT @@character_set_client; SET @@character_set_client = geostd8; SELECT @@character_set_client; SET @@character_set_client = cp932; SELECT @@character_set_client; SET @@character_set_client = eucjpms; SELECT @@character_set_client; --echo '#--------------------FN_DYNVARS_010_07-------------------------#' ############################################################################### # Change the value of character_set_client to a valid value for global # ############################################################################### let charset_variable = @@global.character_set_client; --source suite/sys_vars/inc/charset_basic.inc --echo '#--------------------FN_DYNVARS_010_08-------------------------#' ################################################################################ # Change the value of character_set_client to a valid value with uppercase,# # lowercase and mixedcase # ################################################################################ SET @@character_set_client = UTF8; SELECT @@character_set_client; SET @@character_set_client = utf8; SELECT @@character_set_client; SET @@global.character_set_client = uTf8; SELECT @@global.character_set_client; --echo '#--------------------FN_DYNVARS_010_09-------------------------#' ############################################################## # Check if 1,2,3, ... values can be used on variable # ############################################################## SET @@character_set_client = 1; SELECT @@character_set_client; SET @@character_set_client = 2; SELECT @@character_set_client; SET @@character_set_client = 3; SELECT @@character_set_client; SET @@character_set_client = 36; SELECT @@character_set_client; SET @@character_set_client = 99; SELECT @@character_set_client; --Error ER_UNKNOWN_CHARACTER_SET SET @@character_set_client = 100; SET @@global.character_set_client = 1; SELECT @@global.character_set_client; SET @@global.character_set_client = 2; SELECT @@global.character_set_client; SET @@global.character_set_client = 3; SELECT @@global.character_set_client; SET @@global.character_set_client = 36; SELECT @@global.character_set_client; SET @@global.character_set_client = 99; SELECT @@global.character_set_client; --Error ER_UNKNOWN_CHARACTER_SET SET @@global.character_set_client = 100; SET @total_charset = (SELECT count(*) FROM INFORMATION_SCHEMA.CHARACTER_SETS); SELECT @total_charset; --echo '#--------------------FN_DYNVARS_010_10-------------------------#' ############################################################################### # Change the value of character_set_client to an invalid value for session # ############################################################################### --Error ER_UNKNOWN_CHARACTER_SET SET @@character_set_client = abc; --Error ER_UNKNOWN_CHARACTER_SET SET @@character_set_client = 1utf8; --Error ER_UNKNOWN_CHARACTER_SET SET @@character_set_client = 0; --Error ER_WRONG_TYPE_FOR_VAR SET @@character_set_client = 1.1; --Error ER_UNKNOWN_CHARACTER_SET SET @@character_set_client = -1; --Error ER_UNKNOWN_CHARACTER_SET SET @@character_set_client = ''; --Error ER_UNKNOWN_CHARACTER_SET SET @@character_set_client = 'utf'; SET @@character_set_client = true; SELECT @@character_set_client AS res_with_true; --Error ER_UNKNOWN_CHARACTER_SET SET @@character_set_client = ON; --echo '#--------------------FN_DYNVARS_010_11-------------------------#' ############################################################################### # Change the value of character_set_client to an invalid value for global # ############################################################################### --Error ER_UNKNOWN_CHARACTER_SET SET @@global.character_set_client = abc; --Error ER_UNKNOWN_CHARACTER_SET SET @@global.character_set_client = 1utf8; --Error ER_UNKNOWN_CHARACTER_SET SET @@global.character_set_client = 0; --Error ER_WRONG_TYPE_FOR_VAR SET @@global.character_set_client = 1.1; --Error ER_UNKNOWN_CHARACTER_SET SET @@global.character_set_client = -1; --Error ER_UNKNOWN_CHARACTER_SET SET @@global.character_set_client = ''; --Error ER_UNKNOWN_CHARACTER_SET SET @@global.character_set_client = 'utf'; SET @@global.character_set_client = true; --Error ER_UNKNOWN_CHARACTER_SET SET @@global.character_set_client = ON; --echo '#--------------------FN_DYNVARS_010_12-------------------------#' ########################################################################## # Check if the value in GLOBAL Table matches value in variable # ########################################################################## SELECT @@global.character_set_client = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='character_set_client') AS res; SET @@global.character_set_client = 1; SELECT @@global.character_set_client; SELECT @@global.character_set_client = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='character_set_client') AS res; --echo '#--------------------FN_DYNVARS_010_13-------------------------#' ############################################################################### # Check if the value in SESSION Table matches value in variable # ############################################################################### SELECT @@character_set_client = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='character_set_client') AS res; SELECT @@local.character_set_client = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='character_set_client') AS res; SELECT @@session.character_set_client = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='character_set_client') AS res; #################################### # Restore initial value # #################################### SET @@global.character_set_client = @global_start_value; SELECT @@global.character_set_client; SET @@session.character_set_client = @session_start_value; SELECT @@session.character_set_client; ############################################################# # END OF character_set_client TESTS # #############################################################