ha_innodb.cc:

  In TRUNCATE TABLE, MySQL may call innobase_xa_prepare() even though there is no active transaction because it was committed in ha_innobase::delete_all_rows(); in innobase_xa_prepare() InnoDB starts then a new transaction; let us adjust the trx->active_trans flag accordingly
parent 1c45844a
......@@ -6313,6 +6313,14 @@ innobase_xa_prepare(
/* We were instructed to prepare the whole transaction, or
this is an SQL statement end and autocommit is on */
/* If there is no active InnoDB transaction,
trx_prepare_for_mysql() will (temporarily) start one */
if (trx->active_trans == 0) {
trx->active_trans = 1;
}
error = trx_prepare_for_mysql(trx);
} else {
/* We just mark the SQL statement ended and do not do a
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment