diff options
Diffstat (limited to 'mysql-test/suite/sys_vars/t/collation_server_basic.test')
-rw-r--r-- | mysql-test/suite/sys_vars/t/collation_server_basic.test | 266 |
1 files changed, 266 insertions, 0 deletions
diff --git a/mysql-test/suite/sys_vars/t/collation_server_basic.test b/mysql-test/suite/sys_vars/t/collation_server_basic.test new file mode 100644 index 00000000000..a8af13c13ae --- /dev/null +++ b/mysql-test/suite/sys_vars/t/collation_server_basic.test @@ -0,0 +1,266 @@ +############## mysql-test\t\collation_server_basic.test ####################### +# # +# Variable Name: collation_server # +# Scope: GLOBAL | SESSION # +# Access Type: Dynamic # +# Data Type: string # +# Default Value: # +# Range: NA # +# # +# # +# Creation Date: 2008-02-07 # +# Author: Rizwan # +# # +# Description: Test Cases of Dynamic System Variable collation_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/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/load_sysvars.inc + +################################################### +## START OF collation_server TESTS ## +################################################### + +############################################################# +# Save initial value # +############################################################# +SET @global_start_value = @@global.collation_server; +SELECT @global_start_value; +# Save initial session value +SET @session_start_value = @@collation_server; +SELECT @session_start_value; +# now save using local access +SET @session_start_value = @@local.collation_server; +SELECT @session_start_value; +# save using implicit session scope +SET @session_start_value = @@session.collation_server; +SELECT @session_start_value; + +--echo '#--------------------FN_DYNVARS_014_01------------------#' +############################################################################### +# Test Variable access and assignment with and without @@ # +############################################################################### +# select without @@ +--error ER_BAD_FIELD_ERROR +SELECT collation_server; +# assign value without @@ +SET collation_server=utf8_unicode_ci; +SELECT @@session.collation_server; +# assign global variable without @@ +--Error ER_PARSE_ERROR +SET global.collation_server=utf8_unicode_ci; +# using another syntax for accessing session variable +SET session collation_server=utf8_unicode_ci; +# accessing variable with scope the wrong way +--Error ER_BAD_FIELD_ERROR +SELECT session collation_server; +# using another syntax for accessing dynamic variable +SET global collation_server=utf8_unicode_ci; +--Error ER_BAD_FIELD_ERROR +SELECT global collation_server; + +--echo '#--------------------FN_DYNVARS_014_02-------------------------#' +############################################################################### +# Check the DEFAULT value of collation_server for session and global # +############################################################################### +SET @@collation_server = latin1_bin; +SET @@collation_server = DEFAULT; +SELECT @@collation_server AS DEFAULT_VALUE; + +SET @@global.collation_server = latin1_bin; +SET @@global.collation_server = DEFAULT; +SELECT @@global.collation_server; + +--echo '#--------------------FN_DYNVARS_014_03-------------------------#' +########################################################################### +# Check if setting global value changes session value and vice versa # +########################################################################### +SET @@session.collation_server = utf8_polish_ci; +SELECT @@session.collation_server; +SET @@global.collation_server = latin7_general_ci; +SELECT @@global.collation_server; +SELECT @@session.collation_server AS res_is_utf8_polish_ci; + +SET @@session.collation_server = latin7_bin; +SELECT @@session.collation_server; +SELECT @@global.collation_server AS res_is_latin7_general_ci; +# composite check +SELECT @@global.collation_server=@@session.collation_server AS res_is_false; + +--echo '#--------------------FN_DYNVARS_014_04-------------------------#' +############################################################################# +# Check if accessing variable with and without session point to # +# session variable # +############################################################################# +SELECT @@collation_server = @@session.collation_server AS res; +SELECT @@collation_server = @@local.collation_server AS res; + +--echo '#--------------------FN_DYNVARS_014_05-------------------------#' +########################################################################### +# Check if combining character set works # +########################################################################### +--Error ER_BAD_FIELD_ERROR +SET @@collation_server = latin7_general_ci + latin7_general_cs; + +--echo '#--------------------FN_DYNVARS_014_06-------------------------#' +############################################################################## +# Change the value of collation_server to a valid value for session # +############################################################################## + +let collation_variable = @@session.collation_server; +--source suite/sys_vars/inc/collation_basic.inc + + +--echo '#--------------------FN_DYNVARS_014_07-------------------------#' +############################################################################# +# Change the value of collation_server to a valid value for global # +############################################################################# + +let collation_variable = @@global.collation_server; +--source suite/sys_vars/inc/collation_basic.inc + + +--echo '#--------------------FN_DYNVARS_014_08-------------------------#' +############################################################################# +# Change the value of collation_server to a valid value with uppercase, # +# lowercase and mixedcase # +############################################################################# + +SET @@collation_server = LATIN7_GENERAL_CS; +SELECT @@collation_server; +SET @@collation_server = latin7_general_cs; +SELECT @@collation_server; + +SET @@global.collation_server = Latin7_GeneRal_cS; +SELECT @@global.collation_server; + + +--echo '#--------------------FN_DYNVARS_014_09-------------------------#' +############################################################## +# Check if 1,2,3, ... values can be used on variable # +############################################################## +SET @@collation_server = 1; +SELECT @@collation_server; +SET @@collation_server = 2; +SELECT @@collation_server; +SET @@collation_server = 3; +SELECT @@collation_server; +SET @@collation_server = 99; +SELECT @@collation_server; +--Error ER_UNKNOWN_COLLATION +SET @@collation_server = 100; + + +SET @@global.collation_server = 1; +SELECT @@global.collation_server; +SET @@global.collation_server = 2; +SELECT @@global.collation_server; +SET @@global.collation_server = 3; +SELECT @@global.collation_server; +SET @@global.collation_server = 99; +SELECT @@global.collation_server; +--Error ER_UNKNOWN_COLLATION +SET @@global.collation_server = 100; + + +SET @total_collations = (SELECT count(*) FROM INFORMATION_SCHEMA.COLLATIONS); +SELECT @total_collations > 120; + +--echo '#--------------------FN_DYNVARS_014_10-------------------------#' +############################################################################### +# Change the value of collation_server to an invalid value for session # +############################################################################### +--Error ER_UNKNOWN_COLLATION +SET @@collation_server = latin7_binary; +--Error ER_UNKNOWN_COLLATION +SET @@collation_server = 'eucjpms_japanese_cs'; +--Error ER_UNKNOWN_COLLATION +SET @@collation_server = 0; +--Error ER_WRONG_TYPE_FOR_VAR +SET @@collation_server = 1.01; +--Error ER_UNKNOWN_COLLATION +SET @@collation_server = -1; +--Error ER_UNKNOWN_COLLATION +SET @@collation_server = ''; +--Error ER_UNKNOWN_COLLATION +SET @@collation_server = ' eucjpms_bin'; +SET @@collation_server = true; +SELECT @@collation_server AS res_with_true; +--Error ER_UNKNOWN_COLLATION +SET @@collation_server = ON; + +--echo '#--------------------FN_DYNVARS_014_11-------------------------#' +############################################################################### +# Change the value of collation_server to an invalid value for global # +############################################################################### +--Error ER_UNKNOWN_COLLATION +SET @@global.collation_server = latin7_binary; +--Error ER_UNKNOWN_COLLATION +SET @@global.collation_server = 'eucjpms_japanese_cs'; +--Error ER_UNKNOWN_COLLATION +SET @@global.collation_server = 0; +--Error ER_WRONG_TYPE_FOR_VAR +SET @@global.collation_server = 1.1; +--Error ER_UNKNOWN_COLLATION +SET @@global.collation_server = -1; +--Error ER_UNKNOWN_COLLATION +SET @@global.collation_server = ""; +--Error ER_UNKNOWN_COLLATION +SET @@global.collation_server = ' eucjpms_bin'; + +SET @@global.collation_server = true; + +--Error ER_UNKNOWN_COLLATION +SET @@global.collation_server = ON; + +--echo '#--------------------FN_DYNVARS_014_12-------------------------#' +############################################################################### +# Check if the value in GLOBAL Table matches value in variable # +############################################################################### +SELECT @@global.collation_server = + (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES + WHERE VARIABLE_NAME='collation_server') AS res; +SET @@global.collation_server = 1; +SELECT @@global.collation_server; +SELECT @@global.collation_server = + (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES + WHERE VARIABLE_NAME='collation_server') AS res; + +--echo '#--------------------FN_DYNVARS_014_13-------------------------#' +############################################################################### +# Check if the value in SESSION Table matches value in variable # +############################################################################### +SELECT @@collation_server = + (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES + WHERE VARIABLE_NAME='collation_server') AS res; +SELECT @@local.collation_server = + (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES + WHERE VARIABLE_NAME='collation_server') AS res; +SELECT @@session.collation_server = + (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES + WHERE VARIABLE_NAME='collation_server') AS res; + +#################################### +# Restore initial value # +#################################### +SET @@global.collation_server = @global_start_value; +SELECT @@global.collation_server; +SET @@session.collation_server = @session_start_value; +SELECT @@session.collation_server; + +##################################################### +# END OF collation_server TESTS # +##################################################### |