mirror of
https://github.com/MariaDB/server.git
synced 2025-05-27 01:57:48 +03:00
This allows one to run the test suite even if any of the following options are changed: - character-set-server - collation-server - join-cache-level - log-basename - max-allowed-packet - optimizer-switch - query-cache-size and query-cache-type - skip-name-resolve - table-definition-cache - table-open-cache - Some innodb options etc Changes: - Don't print out the value of system variables as one can't depend on them to being constants. - Don't set global variables to 'default' as the default may not be the same as the test was started with if there was an additional option file. Instead save original value and reset it at end of test. - Test that depends on the latin1 character set should include default_charset.inc or set the character set to latin1 - Test that depends on the original optimizer switch, should include default_optimizer_switch.inc - Test that depends on the value of a specific system variable should set it in the test (like optimizer_use_condition_selectivity) - Split subselect3.test into subselect3.test and subselect3.inc to make it easier to set and reset system variables. - Added .opt files for test that required specfic options that could be changed by external configuration files. - Fixed result files in rockdsb & tokudb that had not been updated for a while.
269 lines
12 KiB
Plaintext
269 lines
12 KiB
Plaintext
############## 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/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/default_charset.inc
|
|
--source include/load_sysvars.inc
|
|
|
|
###################################################
|
|
## START OF character_set_server TESTS ##
|
|
###################################################
|
|
|
|
#############################################################
|
|
# Save initial value #
|
|
#############################################################
|
|
SET @global_start_value = @@global.character_set_server;
|
|
SET @@global.character_set_server=@@character_set_client;
|
|
SELECT @@global.character_set_server;
|
|
# 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;
|
|
|
|
--error ER_WRONG_VALUE_FOR_VAR
|
|
SET @@character_set_server = null;
|
|
|
|
--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 = @@global.character_set_server;
|
|
|
|
SET @@global.character_set_server = latin5;
|
|
SET @@global.character_set_server = DEFAULT;
|
|
SELECT @@global.character_set_server = @global_start_value;
|
|
|
|
--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 suite/sys_vars/inc/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 suite/sys_vars/inc/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;
|
|
|
|
--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;
|
|
SET @@session.character_set_server = @session_start_value;
|
|
|
|
#############################################################
|
|
# END OF character_set_server TESTS #
|
|
#############################################################
|