summaryrefslogtreecommitdiff
path: root/mysql-test/t/init_connect_basic.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t/init_connect_basic.test')
-rw-r--r--mysql-test/t/init_connect_basic.test151
1 files changed, 151 insertions, 0 deletions
diff --git a/mysql-test/t/init_connect_basic.test b/mysql-test/t/init_connect_basic.test
new file mode 100644
index 00000000000..8557dfbf4fc
--- /dev/null
+++ b/mysql-test/t/init_connect_basic.test
@@ -0,0 +1,151 @@
+############## mysql-test\t\init_connect_basic.test ###########################
+# #
+# Variable Name: init_connect #
+# Scope: GLOBAL #
+# Access Type: Dynamic #
+# Data Type: string #
+# Default Value: #
+# Range: #
+# #
+# #
+# Creation Date: 2008-02-07 #
+# Author: Rizwan #
+# #
+# Description: Test Cases of Dynamic System Variable init_connect #
+# 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 init_connect TESTS ##
+##############################################
+
+#############################################################
+# Save initial value #
+#############################################################
+# save using implicit session scope
+SET @global_start_value = @@global.init_connect;
+SELECT @global_start_value AS INIT_VALUE;
+
+--echo '#--------------------FN_DYNVARS_036_01------------------#'
+###############################################################################
+# Test Variable access and assignment with and without @@ #
+###############################################################################
+# select without @@
+--error ER_BAD_FIELD_ERROR
+SELECT init_connect;
+# access using no scope specified
+SELECT @@init_connect;
+# assign value without @@
+SET @@global.init_connect='SET autocomit=0';
+SELECT @@global.init_connect;
+# using another syntax for accessing session variable
+SET global init_connect='SET autocomit=0';
+# accessing variable with scope the wrong way
+--Error ER_BAD_FIELD_ERROR
+SELECT global init_connect;
+--Error ER_PARSE_ERROR
+SELECT @@global init_connect;
+
+
+--echo '#--------------------FN_DYNVARS_036_02-------------------------#'
+##################################################################
+# Check the DEFAULT value of init_connect for global #
+##################################################################
+SET @@global.init_connect = 'SET join_buffer_size=8200';
+SET @@global.init_connect = DEFAULT;
+SELECT @@global.init_connect;
+
+--echo '#--------------------FN_DYNVARS_036_03-------------------------#'
+######################################################################
+# see if it is accessable using session scope #
+######################################################################
+--Error ER_GLOBAL_VARIABLE
+SET @@session.init_connect = '';
+--Error ER_GLOBAL_VARIABLE
+SET @@init_connect = '';
+--Error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@session.init_connect;
+--Error ER_INCORRECT_GLOBAL_LOCAL_VAR
+SELECT @@local.init_connect;
+
+--echo '#--------------------FN_DYNVARS_036_04-------------------------#'
+#########################################################################
+# Change the value of init_connect to a valid value #
+#########################################################################
+
+SET @@global.init_connect="";
+SELECT @@global.init_connect;
+
+SET @@global.init_connect='SELECT 1,"abc"';
+SELECT @@global.init_connect;
+
+SET @@global.init_connect='SET @yoursql="mysql"';
+SELECT @@global.init_connect;
+
+SET @@global.init_connect="SET autocomit=0;REVOKE ALL ON INFORMATION_SCHEMA.*";
+SELECT @@global.init_connect;
+
+SET @@global.init_connect='SHOW VARIABLES';
+SELECT @@global.init_connect;
+
+SET @@global.init_connect = NULL;
+SELECT @@global.init_connect;
+
+#any string is accepted as valid value as its is not verified until runtime
+SET @@global.init_connect='abc 123 +-*/';
+SELECT @@global.init_connect;
+
+SET @@global.init_connect=this_will_give_syntax_error;
+SELECT @@global.init_connect;
+
+SET @@global.init_connect = init_slave;
+SELECT @@global.init_connect;
+
+--echo '#--------------------FN_DYNVARS_036_05-------------------------#'
+###########################################################################
+# Change the value of init_connect to an invalid value for global #
+###########################################################################
+
+--Error ER_WRONG_TYPE_FOR_VAR
+SET @@global.init_connect = true;
+--Error ER_WRONG_TYPE_FOR_VAR
+SET @@global.init_connect = false;
+--Error ER_WRONG_TYPE_FOR_VAR
+SET @@global.init_connect = 1.1;
+--Error ER_WRONG_TYPE_FOR_VAR
+SET @@global.init_connect = 0;
+--Error ER_WRONG_TYPE_FOR_VAR
+SET @@global.init_connect = 1;
+--Error ER_WRONG_TYPE_FOR_VAR
+SET @@global.init_connect = -1;
+
+SET @@global.init_connect = ON;
+SELECT @@global.init_connect;
+
+--echo '#--------------------FN_DYNVARS_036_06-------------------------#'
+##############################################################################
+# Check if the value in GLOBAL Table matches value in variable #
+##############################################################################
+
+SELECT @@global.init_connect = (SELECT VARIABLE_VALUE
+FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
+WHERE VARIABLE_NAME='init_connect') AS res;
+
+####################################
+# Restore initial value #
+####################################
+SET @@global.init_connect = @global_start_value;
+SELECT @@global.init_connect;
+
+#####################################################
+# END OF init_connect TESTS #
+#####################################################