CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
connect  con1,localhost,root;
XA START 'x';
UPDATE t1 set a=2;
XA END 'x';
XA PREPARE 'x';
connect  con2,localhost,root;
CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB;
XA START 'y';
INSERT INTO t2 VALUES (1);
XA END 'y';
XA PREPARE 'y';
connection default;
# restart: --innodb-force-recovery=2
disconnect con1;
disconnect con2;
connect  con1,localhost,root;
SET STATEMENT innodb_lock_wait_timeout=1 FOR # work around MDEV-38741
SELECT * FROM t1 LOCK IN SHARE MODE;
connection default;
SET innodb_lock_wait_timeout=1;
DROP TABLE t2;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
disconnect con1;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT * FROM t1;
a
2
XA ROLLBACK 'x';
SELECT * FROM t1;
a
1
DROP TABLE t2;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
XA ROLLBACK 'y';
DROP TABLE t2;
CREATE TABLE t3(a INT PRIMARY KEY REFERENCES t1(a)) ENGINE=InnoDB;
XA START 'a';
INSERT INTO t3 SET a=1;
INSERT INTO t3 SET a=42;
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`))
XA END 'a';
XA PREPARE 'a';
SET GLOBAL innodb_fast_shutdown=0;
# restart
XA COMMIT 'a';
SELECT * FROM t3;
a
1
DROP TABLE t3,t1;
