summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/xa_binlog.test
blob: 1343fa2aaee15e2bb1ad3c42d3c9d94640a28602 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
--source include/have_innodb.inc
--source include/have_log_bin.inc

CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;

# Fix binlog format (otherwise SHOW BINLOG EVENTS will fluctuate).
SET binlog_format= mixed;

RESET MASTER;

XA START 'xatest';
INSERT INTO t1 VALUES (1);
XA END 'xatest';
XA PREPARE 'xatest';
XA COMMIT 'xatest';

XA START 'xatest';
INSERT INTO t1 VALUES (2);
XA END 'xatest';
XA COMMIT 'xatest' ONE PHASE;

BEGIN;
INSERT INTO t1 VALUES (3);
COMMIT;

SELECT * FROM t1 ORDER BY a;
DROP TABLE t1;

#
# MDEV-22607 Assertion `ha_info->ht() != binlog_hton' failed in
# MYSQL_BIN_LOG::unlog_xa_prepare
#

CREATE TABLE t1 (a INT) ENGINE=Aria;
INSERT INTO t1 VALUES (1),(2);
XA BEGIN 'x';
DELETE FROM t1;
XA END 'x';
XA PREPARE 'x';

# Cleanup
XA COMMIT 'x';

SELECT * from t1;

XA BEGIN 'x';
INSERT INTO t1 VALUES (3),(4);
XA END 'x';
XA PREPARE 'x';
XA ROLLBACK 'x';

SELECT * from t1;
DROP TABLE t1;

#
# Time to check the log
#

--replace_column 2 # 5 #
--replace_regex /xid=[0-9]+/xid=XX/ /GTID [0-9]+-[0-9]+-[0-9]+/GTID #-#-#/
SHOW BINLOG EVENTS LIMIT 3,100;