1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Don't crash if creating sequence under XA

MDEV-22002 Assertion `!is_set() || (m_status == DA_OK_BULK &&
is_bulk_op())' failed upon CREATE TEMPORARY SEQUENCE under XA
This commit is contained in:
Monty
2020-05-22 15:42:11 +03:00
parent c7cdd049b5
commit 736ca14323
3 changed files with 43 additions and 2 deletions

View File

@ -345,3 +345,16 @@ connection default;
XA END 'xid1';
XA ROLLBACK 'xid1';
DROP TABLE t1, t2, t3;
XA BEGIN 'xid';
CREATE TEMPORARY SEQUENCE s;
ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state
XA END 'xid';
XA ROLLBACK 'xid';
XA BEGIN 'xid';
CREATE SEQUENCE s;
ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state
XA END 'xid';
XA ROLLBACK 'xid';
#
# End of 10.3 tests
#

View File

@ -478,3 +478,29 @@ DROP TABLE t1, t2, t3;
--source include/wait_until_count_sessions.inc
#
# MDEV-22002 Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())'
# failed upon CREATE TEMPORARY SEQUENCE under XA
#
XA BEGIN 'xid';
--error ER_XAER_RMFAIL
CREATE TEMPORARY SEQUENCE s;
XA END 'xid';
XA ROLLBACK 'xid';
XA BEGIN 'xid';
--error ER_XAER_RMFAIL
CREATE SEQUENCE s;
XA END 'xid';
XA ROLLBACK 'xid';
--echo #
--echo # End of 10.3 tests
--echo #

View File

@ -355,8 +355,10 @@ bool sequence_insert(THD *thd, LEX *lex, TABLE_LIST *org_table_list)
seq->reserved_until= seq->start;
error= seq->write_initial_sequence(table);
trans_commit_stmt(thd);
trans_commit_implicit(thd);
if (trans_commit_stmt(thd))
error= 1;
if (trans_commit_implicit(thd))
error= 1;
if (!temporary_table)
{