~drizzle-trunk/drizzle/development

Viewing all changes in revision 1143.4.8.

  • 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.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: