Alvaro Herrera <alvherre@dcc.uchile.cl> writes:
> First of all, let me point that the behavior on deadlock has been agreed
> to change. Instead of only aborting the innermost transaction, it will
> abort the whole transaction tree.
Who agreed to that? Your example is entirely unconvincing --- deadlock
is very far from being the only failure that will recur indefinitely,
if an app writer is so foolish as to code an indefinite retry loop.
Any simple illegal-data-value error will act the same.
I do not think declaring by fiat that certain types of errors abort the
whole tree is acceptable from the user end or reasonable from the
implementation end.
regards, tom lane