diff options
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/main/xa.result | 28 | ||||
-rw-r--r-- | mysql-test/main/xa.test | 29 |
2 files changed, 55 insertions, 2 deletions
diff --git a/mysql-test/main/xa.result b/mysql-test/main/xa.result index 030415a5320..d0beaa86569 100644 --- a/mysql-test/main/xa.result +++ b/mysql-test/main/xa.result @@ -51,7 +51,7 @@ formatID gtrid_length bqual_length data 11 5 5 testb 0@P` 1 5 5 testatestb xa commit 'testb',0x2030405060,11; -ERROR XAE04: XAER_NOTA: Unknown XID +ERROR XAE09: XAER_OUTSIDE: Some work is done outside global transaction xa rollback 'testa','testb'; xa start 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 @@ -369,3 +369,29 @@ XA PREPARE 'Я_упaлa_c_сеновала_тормозила_головой'; XA ROLLBACK 'Я_упaлa_c_сеновала_тормозила_головой'; SET NAMES default; DROP TABLE t1; +# +# MDEV-21659 XA rollback foreign_xid is allowed inside active XA +# MDEV-21854 - xa commit one phase for already prepared transaction +# must always error out +# +BEGIN; +XA COMMIT 'unknown'; +ERROR XAE09: XAER_OUTSIDE: Some work is done outside global transaction +XA COMMIT 'unknown' ONE PHASE; +ERROR XAE09: XAER_OUTSIDE: Some work is done outside global transaction +BEGIN; +XA ROLLBACK 'unknown'; +ERROR XAE09: XAER_OUTSIDE: Some work is done outside global transaction +ROLLBACK; +XA START 'xid1'; +XA COMMIT 'unknown'; +ERROR XAE09: XAER_OUTSIDE: Some work is done outside global transaction +XA COMMIT 'unknown' ONE PHASE; +ERROR XAE09: XAER_OUTSIDE: Some work is done outside global transaction +XA ROLLBACK 'unknown'; +ERROR XAE09: XAER_OUTSIDE: Some work is done outside global transaction +XA END 'xid1'; +XA PREPARE 'xid1'; +XA COMMIT 'xid1' ONE PHASE; +ERROR XAE05: XAER_INVAL: Invalid arguments (or unsupported command) +XA ROLLBACK 'xid1'; diff --git a/mysql-test/main/xa.test b/mysql-test/main/xa.test index 41c1f5a8859..aa17a9c1138 100644 --- a/mysql-test/main/xa.test +++ b/mysql-test/main/xa.test @@ -72,7 +72,7 @@ xa prepare 'testa','testb'; xa recover; ---error ER_XAER_NOTA +--error ER_XAER_OUTSIDE xa commit 'testb',0x2030405060,11; xa rollback 'testa','testb'; @@ -505,5 +505,32 @@ XA ROLLBACK 'Я_упaлa_c_сеновала_тормозила_головой'; SET NAMES default; DROP TABLE t1; +--echo # +--echo # MDEV-21659 XA rollback foreign_xid is allowed inside active XA +--echo # MDEV-21854 - xa commit one phase for already prepared transaction +--echo # must always error out +--echo # +BEGIN; +--error ER_XAER_OUTSIDE +XA COMMIT 'unknown'; +--error ER_XAER_OUTSIDE +XA COMMIT 'unknown' ONE PHASE; +BEGIN; +--error ER_XAER_OUTSIDE +XA ROLLBACK 'unknown'; +ROLLBACK; + +XA START 'xid1'; +--error ER_XAER_OUTSIDE +XA COMMIT 'unknown'; +--error ER_XAER_OUTSIDE +XA COMMIT 'unknown' ONE PHASE; +--error ER_XAER_OUTSIDE +XA ROLLBACK 'unknown'; +XA END 'xid1'; +XA PREPARE 'xid1'; +--error ER_XAER_INVAL +XA COMMIT 'xid1' ONE PHASE; +XA ROLLBACK 'xid1'; --source include/wait_until_count_sessions.inc |