# # Variable name : session_track_system_variables # Scope : Global & Session # # Global - default SELECT @@global.session_track_system_variables; @@global.session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection # Session - default SELECT @@session.session_track_system_variables; @@session.session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection # via performance_schema.global_variables SELECT * FROM performance_schema.global_variables WHERE VARIABLE_NAME LIKE 'session_track%' ORDER BY VARIABLE_NAME; VARIABLE_NAME VARIABLE_VALUE session_track_gtids OFF session_track_schema ON session_track_state_change OFF session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection session_track_transaction_info OFF # via performance_schema.session_variables SELECT * FROM performance_schema.session_variables WHERE VARIABLE_NAME LIKE 'session_track%' ORDER BY VARIABLE_NAME; VARIABLE_NAME VARIABLE_VALUE session_track_gtids OFF session_track_schema ON session_track_state_change OFF session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection session_track_transaction_info OFF SET @global_saved_tmp = @@global.session_track_system_variables; # Altering global variable's value SET @@global.session_track_system_variables='autocommit'; SELECT @@global.session_track_system_variables; @@global.session_track_system_variables autocommit SELECT @@session.session_track_system_variables; @@session.session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection # Altering session variable's value SET @@session.session_track_system_variables='autocommit'; SELECT @@global.session_track_system_variables; @@global.session_track_system_variables autocommit SELECT @@session.session_track_system_variables; @@session.session_track_system_variables autocommit # Variables' values in a new session. # Global - expect "autocommit" SELECT @@global.session_track_system_variables; @@global.session_track_system_variables autocommit # Session - expect "autocommit" SELECT @@session.session_track_system_variables; @@session.session_track_system_variables autocommit # Switching to the default connection. SELECT @@global.session_track_system_variables; @@global.session_track_system_variables autocommit SELECT @@session.session_track_system_variables; @@session.session_track_system_variables autocommit # Test if DEFAULT is working as expected. SET @@global.session_track_system_variables = DEFAULT; SET @@session.session_track_system_variables = DEFAULT; SELECT @@global.session_track_system_variables; @@global.session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection SELECT @@session.session_track_system_variables; @@session.session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection # Variables' values in a new session (con2). SELECT @@global.session_track_system_variables; @@global.session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection SELECT @@session.session_track_system_variables; @@session.session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection # Altering session should not affect global. SET @@session.session_track_system_variables = 'sql_mode'; SELECT @@global.session_track_system_variables; @@global.session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection SELECT @@session.session_track_system_variables; @@session.session_track_system_variables sql_mode # Variables' values in a new session (con3). # Altering global should not affect session. SET @@global.session_track_system_variables = 'sql_mode'; SELECT @@global.session_track_system_variables; @@global.session_track_system_variables sql_mode SELECT @@session.session_track_system_variables; @@session.session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection # Switching to the default connection. # Testing NULL SET @@global.session_track_system_variables = NULL; SET @@session.session_track_system_variables = NULL; # Global - expect NULL SELECT @@global.session_track_system_variables; @@global.session_track_system_variables NULL # Session - expect NULL SELECT @@session.session_track_system_variables; @@session.session_track_system_variables NULL # testing with duplicate entries (must fail). SET @@global.session_track_system_variables= "time_zone"; SET @@session.session_track_system_variables= "time_zone"; SET @@global.session_track_system_variables= "sql_mode,sql_mode"; ERROR HY000: Duplicate entry 'sql_mode'. SET @@session.session_track_system_variables= "sql_mode,sql_mode"; ERROR HY000: Duplicate entry 'sql_mode'. # Global - must remain unchanged, 'time_zone' SELECT @@global.session_track_system_variables; @@global.session_track_system_variables time_zone # Session - must remain unchanged, 'time_zone' SELECT @@session.session_track_system_variables; @@session.session_track_system_variables time_zone # Restoring the original values. SET @@global.session_track_system_variables = @global_saved_tmp; # End of tests.