1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
############## 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 #
#####################################################
|