1#
2# Variable name : session_track_system_variables
3# Scope         : Global & Session
4#
5# Global - default
6SELECT @@global.session_track_system_variables;
7@@global.session_track_system_variables
8autocommit,character_set_client,character_set_connection,character_set_results,time_zone
9# Session - default
10SELECT @@session.session_track_system_variables;
11@@session.session_track_system_variables
12autocommit,character_set_client,character_set_connection,character_set_results,time_zone
13
14# via INFORMATION_SCHEMA.GLOBAL_VARIABLES
15SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'session_track%' ORDER BY VARIABLE_NAME;
16VARIABLE_NAME	VARIABLE_VALUE
17SESSION_TRACK_SCHEMA	ON
18SESSION_TRACK_STATE_CHANGE	OFF
19SESSION_TRACK_SYSTEM_VARIABLES	autocommit,character_set_client,character_set_connection,character_set_results,time_zone
20SESSION_TRACK_TRANSACTION_INFO	OFF
21# via INFORMATION_SCHEMA.SESSION_VARIABLES
22SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME LIKE 'session_track%' ORDER BY VARIABLE_NAME;
23VARIABLE_NAME	VARIABLE_VALUE
24SESSION_TRACK_SCHEMA	ON
25SESSION_TRACK_STATE_CHANGE	OFF
26SESSION_TRACK_SYSTEM_VARIABLES	autocommit,character_set_client,character_set_connection,character_set_results,time_zone
27SESSION_TRACK_TRANSACTION_INFO	OFF
28SET @global_saved_tmp =  @@global.session_track_system_variables;
29
30# Altering global variable's value
31SET @@global.session_track_system_variables='autocommit';
32SELECT @@global.session_track_system_variables;
33@@global.session_track_system_variables
34autocommit
35SELECT @@session.session_track_system_variables;
36@@session.session_track_system_variables
37autocommit,character_set_client,character_set_connection,character_set_results,time_zone
38
39# Altering session variable's value
40SET @@session.session_track_system_variables='autocommit';
41SELECT @@global.session_track_system_variables;
42@@global.session_track_system_variables
43autocommit
44SELECT @@session.session_track_system_variables;
45@@session.session_track_system_variables
46autocommit
47
48# Variables' values in a new session.
49connect  con1,"127.0.0.1",root,,test,$MASTER_MYPORT,;
50# Global - expect "autocommit"
51SELECT @@global.session_track_system_variables;
52@@global.session_track_system_variables
53autocommit
54
55# Session - expect "autocommit"
56SELECT @@session.session_track_system_variables;
57@@session.session_track_system_variables
58autocommit
59
60# Switching to the default connection.
61connection default;
62SELECT @@global.session_track_system_variables;
63@@global.session_track_system_variables
64autocommit
65SELECT @@session.session_track_system_variables;
66@@session.session_track_system_variables
67autocommit
68
69# Test if DEFAULT is working as expected.
70SET @@global.session_track_system_variables = DEFAULT;
71SET @@session.session_track_system_variables = DEFAULT;
72
73SELECT @@global.session_track_system_variables;
74@@global.session_track_system_variables
75autocommit,character_set_client,character_set_connection,character_set_results,time_zone
76SELECT @@session.session_track_system_variables;
77@@session.session_track_system_variables
78autocommit,character_set_client,character_set_connection,character_set_results,time_zone
79
80# Variables' values in a new session (con2).
81connect  con2,"127.0.0.1",root,,test,$MASTER_MYPORT,;
82SELECT @@global.session_track_system_variables;
83@@global.session_track_system_variables
84autocommit,character_set_client,character_set_connection,character_set_results,time_zone
85SELECT @@session.session_track_system_variables;
86@@session.session_track_system_variables
87autocommit,character_set_client,character_set_connection,character_set_results,time_zone
88
89# Altering session should not affect global.
90SET @@session.session_track_system_variables = 'sql_mode';
91SELECT @@global.session_track_system_variables;
92@@global.session_track_system_variables
93autocommit,character_set_client,character_set_connection,character_set_results,time_zone
94SELECT @@session.session_track_system_variables;
95@@session.session_track_system_variables
96sql_mode
97
98# Variables' values in a new session (con3).
99connect  con3,"127.0.0.1",root,,test,$MASTER_MYPORT,;
100# Altering global should not affect session.
101SET @@global.session_track_system_variables = 'sql_mode';
102SELECT @@global.session_track_system_variables;
103@@global.session_track_system_variables
104sql_mode
105SELECT @@session.session_track_system_variables;
106@@session.session_track_system_variables
107autocommit,character_set_client,character_set_connection,character_set_results,time_zone
108
109# Switching to the default connection.
110connection default;
111# Testing NULL
112SET @@global.session_track_system_variables = NULL;
113ERROR 42000: Variable 'session_track_system_variables' can't be set to the value of 'NULL'
114SET @@session.session_track_system_variables = NULL;
115ERROR 42000: Variable 'session_track_system_variables' can't be set to the value of 'NULL'
116# testing with duplicate entries.
117SET @@global.session_track_system_variables= "time_zone";
118SET @@session.session_track_system_variables= "time_zone";
119SET @@global.session_track_system_variables= "sql_mode,sql_mode";
120SET @@session.session_track_system_variables= "sql_mode,sql_mode";
121SELECT @@global.session_track_system_variables;
122@@global.session_track_system_variables
123sql_mode
124SELECT @@session.session_track_system_variables;
125@@session.session_track_system_variables
126sql_mode
127
128# testing ordering
129SET @@global.session_track_system_variables= "time_zone,sql_mode";
130SET @@session.session_track_system_variables= "time_zone,sql_mode";
131SELECT @@global.session_track_system_variables;
132@@global.session_track_system_variables
133sql_mode,time_zone
134SELECT @@session.session_track_system_variables;
135@@session.session_track_system_variables
136sql_mode,time_zone
137
138# special values
139SET @@global.session_track_system_variables= "*";
140SET @@session.session_track_system_variables= "*";
141SELECT @@global.session_track_system_variables;
142@@global.session_track_system_variables
143*
144SELECT @@session.session_track_system_variables;
145@@session.session_track_system_variables
146*
147SET @@global.session_track_system_variables= "";
148SET @@session.session_track_system_variables= "";
149SELECT @@global.session_track_system_variables;
150@@global.session_track_system_variables
151
152SELECT @@session.session_track_system_variables;
153@@session.session_track_system_variables
154
155
156# MDEV-22524 SIGABRT in safe_mutex_unlock with session_track_system_variables and max_relay_log_size.
157SET SESSION session_track_system_variables="sql_slave_skip_counter", sql_slave_skip_counter= 0;
158# Restoring the original values.
159SET @@global.session_track_system_variables = @global_saved_tmp;
160# End of tests.
161