#################################################################### # START OF tx_read_only TESTS # #################################################################### ############################################################# # Save initial value # ############################################################# SET @start_global_value = @@global.tx_read_only; SELECT @start_global_value; @start_global_value 0 SET @start_session_value = @@session.tx_read_only; SELECT @start_session_value; @start_session_value 0 ######################################################################## # Display the DEFAULT value of tx_read_only # ######################################################################## SET @@global.tx_read_only = ON; SET @@global.tx_read_only = DEFAULT; SELECT @@global.tx_read_only; @@global.tx_read_only 0 SET @@session.tx_read_only = ON; SET @@session.tx_read_only = DEFAULT; SELECT @@session.tx_read_only; @@session.tx_read_only 0 ############################################################################## # Change the value of tx_read_only to a valid value for GLOBAL Scope # ############################################################################## SET @@global.tx_read_only = ON; SELECT @@global.tx_read_only; @@global.tx_read_only 1 SET @@global.tx_read_only = OFF; SELECT @@global.tx_read_only; @@global.tx_read_only 0 SET @@global.tx_read_only = 0; SELECT @@global.tx_read_only; @@global.tx_read_only 0 SET @@global.tx_read_only = 1; SELECT @@global.tx_read_only; @@global.tx_read_only 1 SET @@global.tx_read_only = TRUE; SELECT @@global.tx_read_only; @@global.tx_read_only 1 SET @@global.tx_read_only = FALSE; SELECT @@global.tx_read_only; @@global.tx_read_only 0 ############################################################################### # Change the value of tx_read_only to a valid value for SESSION Scope # ############################################################################### SET @@session.tx_read_only = ON; SELECT @@session.tx_read_only; @@session.tx_read_only 1 SET @@session.tx_read_only = OFF; SELECT @@session.tx_read_only; @@session.tx_read_only 0 SET @@session.tx_read_only = 0; SELECT @@session.tx_read_only; @@session.tx_read_only 0 SET @@session.tx_read_only = 1; SELECT @@session.tx_read_only; @@session.tx_read_only 1 SET @@session.tx_read_only = TRUE; SELECT @@session.tx_read_only; @@session.tx_read_only 1 SET @@session.tx_read_only = FALSE; SELECT @@session.tx_read_only; @@session.tx_read_only 0 ################################################################ # Change the value of tx_read_only to an invalid value # ################################################################ SET @@global.tx_read_only = 'ONN'; ERROR 42000: Variable 'tx_read_only' can't be set to the value of 'ONN' SET @@global.tx_read_only = "OFFF"; ERROR 42000: Variable 'tx_read_only' can't be set to the value of 'OFFF' SET @@global.tx_read_only = TTRUE; ERROR 42000: Variable 'tx_read_only' can't be set to the value of 'TTRUE' SET @@global.tx_read_only = FELSE; ERROR 42000: Variable 'tx_read_only' can't be set to the value of 'FELSE' SET @@global.tx_read_only = -1024; ERROR 42000: Variable 'tx_read_only' can't be set to the value of '-1024' SET @@global.tx_read_only = 65536; ERROR 42000: Variable 'tx_read_only' can't be set to the value of '65536' SET @@global.tx_read_only = 65530.34; ERROR 42000: Incorrect argument type to variable 'tx_read_only' SET @@global.tx_read_only = test; ERROR 42000: Variable 'tx_read_only' can't be set to the value of 'test' SET @@session.tx_read_only = ONN; ERROR 42000: Variable 'tx_read_only' can't be set to the value of 'ONN' SET @@session.tx_read_only = ONF; ERROR 42000: Variable 'tx_read_only' can't be set to the value of 'ONF' SET @@session.tx_read_only = OF; ERROR 42000: Variable 'tx_read_only' can't be set to the value of 'OF' SET @@session.tx_read_only = 'OFN'; ERROR 42000: Variable 'tx_read_only' can't be set to the value of 'OFN' SET @@session.tx_read_only = -2; ERROR 42000: Variable 'tx_read_only' can't be set to the value of '-2' SET @@session.tx_read_only = 65530.34; ERROR 42000: Incorrect argument type to variable 'tx_read_only' SET @@session.tx_read_only = 65550; ERROR 42000: Variable 'tx_read_only' can't be set to the value of '65550' SET @@session.tx_read_only = test; ERROR 42000: Variable 'tx_read_only' can't be set to the value of 'test' SELECT @@session.tx_read_only; @@session.tx_read_only 0 #################################################################### # Check if the value in GLOBAL Table matches value in variable # #################################################################### SELECT IF(@@global.tx_read_only, "ON", "OFF") = VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='tx_read_only'; IF(@@global.tx_read_only, "ON", "OFF") = VARIABLE_VALUE 1 #################################################################### # Check if the value in SESSION Table matches value in variable # #################################################################### SELECT IF(@@session.tx_read_only, "ON", "OFF") = VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='tx_read_only'; IF(@@session.tx_read_only, "ON", "OFF") = VARIABLE_VALUE 1 ############################################################################### # Check if accessing variable with and without GLOBAL point to same variable # ############################################################################### SET @@tx_read_only = OFF; SET @@global.tx_read_only = ON; SELECT @@tx_read_only = @@global.tx_read_only; @@tx_read_only = @@global.tx_read_only 0 ############################################################################## # Check if accessing variable with SESSION,LOCAL and without SCOPE points # # to same session variable # ############################################################################## SET @@tx_read_only = ON; SELECT @@tx_read_only = @@local.tx_read_only; @@tx_read_only = @@local.tx_read_only 1 SELECT @@local.tx_read_only = @@session.tx_read_only; @@local.tx_read_only = @@session.tx_read_only 1 ############################################################################### # Check if tx_read_only can be accessed with and without @@ sign # ############################################################################### # @@session is synonym for SESSION SET @@session.tx_read_only= 0; # Without modifier, SET changes session variable SET tx_read_only = 1; SELECT @@tx_read_only; @@tx_read_only 1 # name1.name2 refers to database_name.table_name SELECT session.tx_read_only; ERROR 42S02: Unknown table 'session' in field list #################################### # Restore initial value # #################################### SET @@global.tx_read_only = @start_global_value; SELECT @@global.tx_read_only; @@global.tx_read_only 0 SET @@session.tx_read_only = @start_session_value; SELECT @@session.tx_read_only; @@session.tx_read_only 0 ######################################################### # END OF tx_read_only TESTS # #########################################################