1SET GLOBAL binlog_transaction_dependency_tracking= 'COMMIT_ORDER';
2SET GLOBAL transaction_write_set_extraction= 'XXHASH64';
3SELECT COUNT(@@GLOBAL.binlog_transaction_dependency_tracking);
4COUNT(@@GLOBAL.binlog_transaction_dependency_tracking)
51
6SELECT COUNT(@@SESSION.binlog_transaction_dependency_tracking);
7ERROR HY000: Variable 'binlog_transaction_dependency_tracking' is a GLOBAL variable
8SELECT VARIABLE_NAME FROM performance_schema.global_variables WHERE VARIABLE_NAME='binlog_transaction_dependency_tracking';
9VARIABLE_NAME
10binlog_transaction_dependency_tracking
11SELECT VARIABLE_NAME FROM performance_schema.session_variables WHERE variable_name='binlog_transaction_dependency_tracking';
12VARIABLE_NAME
13binlog_transaction_dependency_tracking
14SET GLOBAL binlog_transaction_dependency_tracking= 'COMMIT_ORDER';
15include/assert.inc ['binlog_transaction_dependency_tracking is a dynamic variable']
16SET GLOBAL binlog_transaction_dependency_tracking= 'COMMIT_ORDER';
17include/assert.inc ['binlog_transaction_dependency_tracking should be COMMIT_ORDER']
18SET GLOBAL binlog_transaction_dependency_tracking= 0;
19include/assert.inc ['binlog_transaction_dependency_tracking should be COMMIT_ORDER']
20SET GLOBAL binlog_transaction_dependency_tracking= 'WRITESET';
21include/assert.inc ['binlog_transaction_dependency_tracking should be WRITESET']
22SET GLOBAL binlog_transaction_dependency_tracking= 1;
23include/assert.inc ['binlog_transaction_dependency_tracking should be WRITESET']
24SET GLOBAL binlog_transaction_dependency_tracking= 'WRITESET_SESSION';
25include/assert.inc ['binlog_transaction_dependency_tracking should be WRITESET_SESSION']
26SET GLOBAL binlog_transaction_dependency_tracking= 2;
27include/assert.inc ['binlog_transaction_dependency_tracking should be WRITESET_SESSION']
28SET GLOBAL binlog_transaction_dependency_tracking= DEFAULT;
29include/assert.inc ['binlog_transaction_dependency_tracking should be COMMIT_ORDER']
30SET GLOBAL binlog_transaction_dependency_tracking= NULL;
31ERROR 42000: Variable 'binlog_transaction_dependency_tracking' can't be set to the value of 'NULL'
32SET GLOBAL binlog_transaction_dependency_tracking= '';
33ERROR 42000: Variable 'binlog_transaction_dependency_tracking' can't be set to the value of ''
34SET GLOBAL binlog_transaction_dependency_tracking= 1.0;
35ERROR 42000: Incorrect argument type to variable 'binlog_transaction_dependency_tracking'
36SET GLOBAL binlog_transaction_dependency_tracking= 'GARBAGE';
37ERROR 42000: Variable 'binlog_transaction_dependency_tracking' can't be set to the value of 'GARBAGE'
38SET GLOBAL binlog_transaction_dependency_tracking= ON;
39ERROR 42000: Variable 'binlog_transaction_dependency_tracking' can't be set to the value of 'ON'
40SET GLOBAL binlog_transaction_dependency_tracking= OFF;
41ERROR 42000: Variable 'binlog_transaction_dependency_tracking' can't be set to the value of 'OFF'
42SET GLOBAL binlog_transaction_dependency_tracking= 3;
43ERROR 42000: Variable 'binlog_transaction_dependency_tracking' can't be set to the value of '3'
44Expect value still set to "COMMIT_ORDER"
45SELECT @@global.binlog_transaction_dependency_tracking;
46@@global.binlog_transaction_dependency_tracking
47COMMIT_ORDER
48Case1 a): "When binlog_transaction_dependency_tracking != COMMIT_ORDER,
49transaction_write_set_extraction cannot be changed."
50SET GLOBAL binlog_transaction_dependency_tracking= 'WRITESET';
51SET GLOBAL transaction_write_set_extraction= OFF;
52ERROR HY000: Incorrect usage of transaction_write_set_extraction (changed) and binlog_transaction_dependency_tracking (!= COMMIT_ORDER)
53SET GLOBAL transaction_write_set_extraction= MURMUR32;
54ERROR HY000: Incorrect usage of transaction_write_set_extraction (changed) and binlog_transaction_dependency_tracking (!= COMMIT_ORDER)
55Expect value still set to XXHASH64
56SELECT @@global.transaction_write_set_extraction;
57@@global.transaction_write_set_extraction
58XXHASH64
59Case1 b): "When binlog_transaction_dependency_tracking != COMMIT_ORDER,
60transaction_write_set_extraction cannot be changed."
61SET GLOBAL binlog_transaction_dependency_tracking= 'WRITESET_SESSION';
62SET GLOBAL transaction_write_set_extraction= OFF;
63ERROR HY000: Incorrect usage of transaction_write_set_extraction (changed) and binlog_transaction_dependency_tracking (!= COMMIT_ORDER)
64SET GLOBAL transaction_write_set_extraction= MURMUR32;
65ERROR HY000: Incorrect usage of transaction_write_set_extraction (changed) and binlog_transaction_dependency_tracking (!= COMMIT_ORDER)
66Expect value still set to XXHASH64
67SELECT @@global.transaction_write_set_extraction;
68@@global.transaction_write_set_extraction
69XXHASH64
70Case2: "When transaction_write_set_extraction = OFF,
71binlog_transaction_dependency_tracking cannot be set to WRITESET%"
72SET GLOBAL binlog_transaction_dependency_tracking= 'COMMIT_ORDER';
73SET GLOBAL transaction_write_set_extraction= OFF;
74SET GLOBAL binlog_transaction_dependency_tracking= 'WRITESET';
75ERROR HY000: Incorrect usage of binlog_transaction_dependency_tracking (!= COMMIT_ORDER) and transaction_write_set_extraction (= OFF)
76SET GLOBAL binlog_transaction_dependency_tracking= 'WRITESET_SESSION';
77ERROR HY000: Incorrect usage of binlog_transaction_dependency_tracking (!= COMMIT_ORDER) and transaction_write_set_extraction (= OFF)
78Expect value still set to COMMIT_ORDER
79SELECT @@global.binlog_transaction_dependency_tracking;
80@@global.binlog_transaction_dependency_tracking
81COMMIT_ORDER
82SET GLOBAL transaction_write_set_extraction= XXHASH64;
83