############## 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 accessible 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='set @a="12\034"'; SELECT @@global.init_connect; SELECT hex(@@global.init_connect); SHOW VARIABLES LIKE '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 # #####################################################