diff options
Diffstat (limited to 'mysql-test/t/character_set_server_basic.test')
-rw-r--r-- | mysql-test/t/character_set_server_basic.test | 267 |
1 files changed, 267 insertions, 0 deletions
diff --git a/mysql-test/t/character_set_server_basic.test b/mysql-test/t/character_set_server_basic.test new file mode 100644 index 00000000000..e2d2a9ca9fc --- /dev/null +++ b/mysql-test/t/character_set_server_basic.test @@ -0,0 +1,267 @@ +############## mysql-test\t\character_set_server_basic.test ################### +# # +# Variable Name: character_set_server # +# 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_server # +# 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/load_sysvars.inc + +################################################### +## START OF character_set_server TESTS ## +################################################### + +############################################################# +# Save initial value # +############################################################# +SET @global_start_value = @@global.character_set_server; +SELECT @global_start_value; +# Save initial session value +SET @session_start_value = @@character_set_server; +SELECT @session_start_value; +# now save using local access +SET @session_start_value = @@local.character_set_server; +SELECT @session_start_value; +# save using default access (session) +SET @session_start_value = @@session.character_set_server; +SELECT @session_start_value; + +--echo '#--------------------FN_DYNVARS_009_01------------------#' +############################################################################### +# Test Variable access and assignment with and withoud @@ # +############################################################################### +# select without @@ +--error ER_BAD_FIELD_ERROR +SELECT character_set_server; +# assign value without @@ +SET character_set_server=utf8; +SELECT @@session.character_set_server; +# assign global variable without @@ +--Error ER_PARSE_ERROR +SET global.character_set_server=utf8; +# using another syntax for accessing session variable +SET session character_set_server=utf8; +# accessing variable with scope the wrong way +--Error ER_BAD_FIELD_ERROR +SELECT session character_set_server; +# using another syntax for accessing dynamic variable +SET global character_set_server=utf8; +--Error ER_BAD_FIELD_ERROR +SELECT global character_set_server; + +--echo '#--------------------FN_DYNVARS_009_02-------------------------#' +############################################################################### +# Check the DEFAULT value of character_set_server for session and global # +############################################################################### +SET @@character_set_server = latin5; +SET @@character_set_server = DEFAULT; +SELECT @@character_set_server AS DEFAULT_VALUE; + +SET @@global.character_set_server = latin5; +SET @@global.character_set_server = DEFAULT; +SELECT @@global.character_set_server; + +--echo '#--------------------FN_DYNVARS_009_03-------------------------#' +############################################################################### +# see if setting global value changes session value and vice versa # +############################################################################### +SET @@session.character_set_server = utf8; +SELECT @@session.character_set_server; +SET @@global.character_set_server = latin2; +SELECT @@global.character_set_server; +SELECT @@session.character_set_server AS res_is_utf8; + +SET @@session.character_set_server = latin5; +SELECT @@session.character_set_server; +SELECT @@global.character_set_server AS res_is_latin2; +# composite check +SELECT @@global.character_set_server=@@session.character_set_server +AS res_is_false; + +--echo '#--------------------FN_DYNVARS_009_04-------------------------#' +############################################################################### +# Check if accessing variable with and without session point # +# to session variable # +############################################################################### +SELECT @@character_set_server = @@session.character_set_server AS res; +SELECT @@character_set_server = @@local.character_set_server AS res; + +--echo '#--------------------FN_DYNVARS_009_05-------------------------#' +########################################################################### +# Check if combining character set works # +########################################################################### +--Error ER_BAD_FIELD_ERROR +SET @@character_set_server = utf8 + latin2; + +--echo '#--------------------FN_DYNVARS_009_06-------------------------#' +############################################################################### +# Change the value of character_set_server to a valid value for session # +############################################################################### + +let charset_variable = @@session.character_set_server; + +--source include/charset_basic.inc + + +--echo '#--------------------FN_DYNVARS_009_07-------------------------#' +############################################################################### +# Change the value of character_set_server to a valid value for global # +############################################################################### + +let charset_variable = @@global.character_set_server; +--source include/charset_basic.inc + + +--echo '#--------------------FN_DYNVARS_009_08-------------------------#' +############################################################################### +# Change the value of character_set_server to a valid value with uppercase, # +# lowercase and mixedcase # +############################################################################### +SET @@character_set_server = UTF8; +SELECT @@character_set_server; +SET @@character_set_server = utf8; +SELECT @@character_set_server; + +SET @@global.character_set_server = uTf8; +SELECT @@global.character_set_server; + +--echo '#--------------------FN_DYNVARS_009_09-------------------------#' +############################################################## +# Check if 1,2,3, ... values can be used on variable # +############################################################## +SET @@character_set_server = 1; +SELECT @@character_set_server; +SET @@character_set_server = 2; +SELECT @@character_set_server; +SET @@character_set_server = 3; +SELECT @@character_set_server; +SET @@character_set_server = 36; +SELECT @@character_set_server; +SET @@character_set_server = 99; +SELECT @@character_set_server; + +--Error ER_UNKNOWN_CHARACTER_SET +SET @@character_set_server = 100; + +SET @@global.character_set_server = 1; +SELECT @@global.character_set_server; +SET @@global.character_set_server = 2; +SELECT @@global.character_set_server; +SET @@global.character_set_server = 36; +SELECT @@global.character_set_server; +SET @@global.character_set_server = 99; +SELECT @@global.character_set_server; + +--Error ER_UNKNOWN_CHARACTER_SET +SET @@global.character_set_server = 100; + +SET @total_charset = (SELECT count(*) FROM INFORMATION_SCHEMA.CHARACTER_SETS); +SELECT @total_charset; +--echo 'Bug # 34843: character sets are mapped in such a way that 100 and following '; +--echo 'numbers gives error, and before 100 the 36 mapped wraps arround '; +--echo 'several times.'; + +--echo '#--------------------FN_DYNVARS_009_10-------------------------#' +############################################################################### +# Change the value of character_set_server to an invalid value for session # +############################################################################### +--Error ER_UNKNOWN_CHARACTER_SET +SET @@character_set_server = abc; +--Error ER_UNKNOWN_CHARACTER_SET +SET @@character_set_server = 1utf8; +--Error ER_UNKNOWN_CHARACTER_SET +SET @@character_set_server = 0; +--Error ER_WRONG_TYPE_FOR_VAR +SET @@character_set_server = 1.1; +--Error ER_UNKNOWN_CHARACTER_SET +SET @@character_set_server = -1; +--Error ER_UNKNOWN_CHARACTER_SET +SET @@character_set_server = ''; +--Error ER_UNKNOWN_CHARACTER_SET +SET @@character_set_server = 'utf'; +SET @@character_set_server = true; +SELECT @@character_set_server AS res_with_true; + +--Error ER_UNKNOWN_CHARACTER_SET +SET @@character_set_server = ON; + +--echo '#--------------------FN_DYNVARS_009_11-------------------------#' +############################################################################### +# Change the value of character_set_server to an invalid value for global # +############################################################################### +--Error ER_UNKNOWN_CHARACTER_SET +SET @@global.character_set_server = abc; +--Error ER_UNKNOWN_CHARACTER_SET +SET @@global.character_set_server = 1utf8; +--Error ER_UNKNOWN_CHARACTER_SET +SET @@global.character_set_server = 0; +--Error ER_WRONG_TYPE_FOR_VAR +SET @@global.character_set_server = 1.1; +--Error ER_UNKNOWN_CHARACTER_SET +SET @@global.character_set_server = -1; +--Error ER_UNKNOWN_CHARACTER_SET +SET @@global.character_set_server = ''; +--Error ER_UNKNOWN_CHARACTER_SET +SET @@global.character_set_server = 'utf'; + +SET @@global.character_set_server = true; + +--Error ER_UNKNOWN_CHARACTER_SET +SET @@global.character_set_server = ON; + +--echo '#--------------------FN_DYNVARS_009_12-------------------------#' +############################################################################### +# Check if the value in GLOBAL Table matches value in variable # +############################################################################### +SELECT @@global.character_set_server = + (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES + WHERE VARIABLE_NAME='character_set_server') AS res; +SET @@global.character_set_server = 1; +SELECT @@global.character_set_server; +SELECT @@global.character_set_server = + (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES + WHERE VARIABLE_NAME='character_set_server') AS res; + +--echo '#--------------------FN_DYNVARS_009_13-------------------------#' +############################################################################### +# Check if the value in SESSION Table matches value in variable # +############################################################################### +SELECT @@character_set_server = + (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES + WHERE VARIABLE_NAME='character_set_server') AS res; +SELECT @@local.character_set_server = + (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES + WHERE VARIABLE_NAME='character_set_server') AS res; +SELECT @@session.character_set_server = + (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES + WHERE VARIABLE_NAME='character_set_server') AS res; + +#################################### +# Restore initial value # +#################################### +SET @@global.character_set_server = @global_start_value; +SELECT @@global.character_set_server; +SET @@session.character_set_server = @session_start_value; +SELECT @@session.character_set_server; + +############################################################# +# END OF character_set_server TESTS # +############################################################# |