It appears it's not possible to restore to an savepoint within in a XA transaction
create table t1(
|
c1 int
|
) engine=innodb;
|
|
XA START 'xa1';
|
SAVEPOINT savepoint1;
|
INSERT INTO t1 (c1) VALUES (1),(2),(3),(4);
|
|
ROLLBACK TO SAVEPOINT savepoint1;
|
this gives error:
Error Code: 1399. XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state
When i try the exact same query in mysql (5.7), this produces no errors, also the transaction is restored to the actual savepoint.
When savepoints wouldn't be supported in XA transactions, i would expect the SAVEPOINT x would already result in an error.