Merge mysql-5.1-innodb to mysql-5.5-innodb.
This commit is contained in:
commit
c9c4e4f880
@ -214,12 +214,12 @@ trx_recover_for_mysql(
|
||||
/*******************************************************************//**
|
||||
This function is used to find one X/Open XA distributed transaction
|
||||
which is in the prepared state
|
||||
@return trx or NULL */
|
||||
@return trx or NULL; on match, the trx->xid will be invalidated */
|
||||
UNIV_INTERN
|
||||
trx_t *
|
||||
trx_get_trx_by_xid(
|
||||
/*===============*/
|
||||
XID* xid); /*!< in: X/Open XA transaction identification */
|
||||
const XID* xid); /*!< in: X/Open XA transaction identifier */
|
||||
/**********************************************************************//**
|
||||
If required, flushes the log to disk if we called trx_commit_for_mysql()
|
||||
with trx->flush_log_later == TRUE.
|
||||
|
@ -2004,12 +2004,12 @@ trx_recover_for_mysql(
|
||||
/*******************************************************************//**
|
||||
This function is used to find one X/Open XA distributed transaction
|
||||
which is in the prepared state
|
||||
@return trx or NULL */
|
||||
@return trx or NULL; on match, the trx->xid will be invalidated */
|
||||
UNIV_INTERN
|
||||
trx_t*
|
||||
trx_get_trx_by_xid(
|
||||
/*===============*/
|
||||
XID* xid) /*!< in: X/Open XA transaction identification */
|
||||
const XID* xid) /*!< in: X/Open XA transaction identifier */
|
||||
{
|
||||
trx_t* trx;
|
||||
|
||||
@ -2028,10 +2028,16 @@ trx_get_trx_by_xid(
|
||||
of gtrid_length+bqual_length bytes should be
|
||||
the same */
|
||||
|
||||
if (xid->gtrid_length == trx->xid.gtrid_length
|
||||
if (trx->conc_state == TRX_PREPARED
|
||||
&& xid->gtrid_length == trx->xid.gtrid_length
|
||||
&& xid->bqual_length == trx->xid.bqual_length
|
||||
&& memcmp(xid->data, trx->xid.data,
|
||||
xid->gtrid_length + xid->bqual_length) == 0) {
|
||||
|
||||
/* Invalidate the XID, so that subsequent calls
|
||||
will not find it. */
|
||||
memset(&trx->xid, 0, sizeof(trx->xid));
|
||||
trx->xid.formatID = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2040,14 +2046,5 @@ trx_get_trx_by_xid(
|
||||
|
||||
mutex_exit(&kernel_mutex);
|
||||
|
||||
if (trx) {
|
||||
if (trx->conc_state != TRX_PREPARED) {
|
||||
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
return(trx);
|
||||
} else {
|
||||
return(NULL);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user