summaryrefslogtreecommitdiff
path: root/mysql-test/suite/sys_vars/t/collation_server_basic.test
diff options
context:
space:
mode:
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.test266
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 #
+#####################################################