mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Fixed bug in trans_check() where on error we gave wrong return value
This commit is contained in:
@@ -60,7 +60,14 @@ void trans_reset_one_shot_chistics(THD *thd)
|
||||
thd->tx_read_only= thd->variables.tx_read_only;
|
||||
}
|
||||
|
||||
/* Conditions under which the transaction state must not change. */
|
||||
|
||||
/*
|
||||
Conditions under which the transaction state must not change
|
||||
|
||||
@result TRUE Transaction can not commit
|
||||
@result FALSE Transaction can commit
|
||||
*/
|
||||
|
||||
static bool trans_check(THD *thd)
|
||||
{
|
||||
DBUG_ENTER("trans_check");
|
||||
@@ -72,8 +79,11 @@ static bool trans_check(THD *thd)
|
||||
DBUG_ASSERT(thd->transaction->stmt.is_empty());
|
||||
|
||||
if (unlikely(thd->in_sub_stmt))
|
||||
{
|
||||
my_error(ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG, MYF(0));
|
||||
if (!thd->transaction->xid_state.is_explicit_XA())
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
if (likely(!thd->transaction->xid_state.is_explicit_XA()))
|
||||
DBUG_RETURN(FALSE);
|
||||
|
||||
thd->transaction->xid_state.er_xaer_rmfail();
|
||||
|
||||
Reference in New Issue
Block a user