Description:
At applying row-based events comprising a mixed engine transaction
there is no warning that the user can get if the transaction modifies
a non-transaction table and gets rolled back.
In that case if the user restarts applying by slave sql thread, he can
get all sort of errors due to re-applying events on the
non-transaction table.
The bug fixes need to provide both: the warning to the user and the
internal mechanisms to notify that a non-transaction table has been
modified during execution of a group of row-based events.
How to repeat:
1. Try to roll back a replicated transction that manages to modify a
non-trans table on the slave before the rollback and see no warning
when replication gets stopped.
2. Look at the source code and see that on the query level there are
flags denoting if a non-trans table was involved during
transaction,
but the flags don't exist on the row-based replication applying
level.