############## mysql-test\t\concurrent_insert_basic.test ####################### # # # Variable Name: concurrent_insert # # Scope: GLOBAL # # Access Type: Dynamic # # Data Type: Boolean & Numeric # # Default Value: 1 # # Valid Values: 0,1 & 2 # # # # # # Creation Date: 2008-02-07 # # Author: Salman Rawala # # # # Description: Test Cases of Dynamic System Variable "concurrent_insert" # # that checks 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#option_mysqld_concurrent_insert # # # ################################################################################ --source include/load_sysvars.inc ################################################################# # START OF concurrent_insert TESTS # ################################################################# ######################################################################### # Saving initial value of concurrent_insert in a temporary variable # ######################################################################### SET @start_value = @@global.concurrent_insert; SELECT @start_value; --echo '#--------------------FN_DYNVARS_018_01------------------------#' ######################################################################### # Display the DEFAULT value of concurrent_insert # ######################################################################### SET @@global.concurrent_insert = 0; SET @@global.concurrent_insert = DEFAULT; SELECT @@global.concurrent_insert; --echo '#---------------------FN_DYNVARS_018_02-------------------------#' ############################################### # Verify default value of variable # ############################################### SET @@global.concurrent_insert = DEFAULT; SELECT @@global.concurrent_insert = 1; --echo '#--------------------FN_DYNVARS_018_03------------------------#' ######################################################################### # Change the value of concurrent_insert to a valid value # ######################################################################### SET @@global.concurrent_insert = 0; SELECT @@global.concurrent_insert; SET @@global.concurrent_insert = 1; SELECT @@global.concurrent_insert; SET @@global.concurrent_insert = 2; SELECT @@global.concurrent_insert; SET @@global.concurrent_insert = NEVER; SELECT @@global.concurrent_insert; SET @@global.concurrent_insert = AUTO; SELECT @@global.concurrent_insert; SET @@global.concurrent_insert = ALWAYS; SELECT @@global.concurrent_insert; --echo '#--------------------FN_DYNVARS_018_04-------------------------#' ########################################################################### # Change the value of concurrent_insert to invalid value # ########################################################################### --error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = -1; --error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = 100; --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = TRUEF; --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = TRUE_F; --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = FALSE0; --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = OON; --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = ONN; --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = OOFF; --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = 0FF; --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = ' '; --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = " "; --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = ''; --echo '#-------------------FN_DYNVARS_018_05----------------------------#' ##################################################################### # Test if accessing session concurrent_insert gives error # ##################################################################### --Error ER_GLOBAL_VARIABLE SET @@session.concurrent_insert = 1; --Error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT @@session.concurrent_insert = 1; --echo '#----------------------FN_DYNVARS_018_06------------------------#' #################################################################### # Check if the value in GLOBAL Tables matches values in variable # #################################################################### SELECT @@global.concurrent_insert = VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='concurrent_insert'; --echo '#---------------------FN_DYNVARS_018_07----------------------#' ################################################################### # Check if ON and OFF values can be used on variable # ################################################################### --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = OFF; --Error ER_WRONG_VALUE_FOR_VAR SET @@global.concurrent_insert = ON; --echo '#---------------------FN_DYNVARS_018_08----------------------#' ################################################################### # Check if TRUE and FALSE values can be used on variable # ################################################################### SET @@global.concurrent_insert = TRUE; SELECT @@global.concurrent_insert; SET @@global.concurrent_insert = FALSE; SELECT @@global.concurrent_insert; --echo '#---------------------FN_DYNVARS_018_09----------------------#' ############################################################################### # Check if accessing variable without SCOPE points to same global variable # ############################################################################### SET @@global.concurrent_insert = 1; SELECT @@concurrent_insert = @@global.concurrent_insert; --echo '#---------------------FN_DYNVARS_018_10----------------------#' ############################################################################### # Check if concurrent_insert can be accessed with and without @@ sign # ############################################################################### --Error ER_GLOBAL_VARIABLE SET concurrent_insert = 1; SELECT @@concurrent_insert; --Error ER_PARSE_ERROR SET global.concurrent_insert = 1; --Error ER_UNKNOWN_TABLE SELECT global.concurrent_insert; --Error ER_BAD_FIELD_ERROR SELECT concurrent_insert = @@session.concurrent_insert; ############################## # Restore initial value # ############################## SET @@global.concurrent_insert = @start_value; SELECT @@global.concurrent_insert; ####################################################### # END OF concurrent_insert TESTS # #######################################################