-
Committer:
Jay Pipes
-
Date:
2009-12-04 16:59:27 UTC
-
mto:
(1237.2.10 push)
-
mto:
This revision was merged to the branch mainline in
revision
1238.
-
Revision ID:
jpipes@serialcoder-20091204165927-euzm7u9406sjvlce
This commit fixes issues raised by Joe Daly in Bug#489823.
Basically, ROLLBACK was not being properly dealt with in the
ReplicationServices component nor the ha_rollback_trans() function
which is the kernel's interface to the storage engines for rolling
back statements.
This patch corrects the prior behvaviour:
1) If no bulk segments have been passed to replicators for the
existing transaction when a ROLLBACK occurs, then the current
Transaction message is cleared and deleted from the Session object.
2) If a bulk segment has been sent, then we clear the current
Transaction message, populate it with a single Stateme of type
ROLLBACK, and send this to the replicator stream.
Adds a test case for the behvaiour of #1. We have yet to finalize
the interface for bulk statements, so #2 is not yet testable.
In addition, this patch cleans up the output of errors in the
transaction_reader program to output a human readable hexdump of the
read buffer instead of dumping raw bytes to the screen.