summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/xa_binlog.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/main/xa_binlog.test')
-rw-r--r--mysql-test/main/xa_binlog.test61
1 files changed, 61 insertions, 0 deletions
diff --git a/mysql-test/main/xa_binlog.test b/mysql-test/main/xa_binlog.test
new file mode 100644
index 00000000..1343fa2a
--- /dev/null
+++ b/mysql-test/main/xa_binlog.test
@@ -0,0 +1,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;