An alternative is to implement sub (nested) transactions, like Oracle and MS SQL Server... but that would be quite some work.

As a complement, a search showed that IBM DB2, cited as a reference by Pavel, has AUTONOMOUS transactions, which looks pretty much the same thing as nested transactions. The documentation presents an interesting use security-related use case:

The idea is that an application must record an attempt to access a data even if the attempt fails and is rolled-back.

This feature used carefully within an appropriate pattern would allow to ensure that if the setup transaction fails then the session status is FALSE. One possible inconsistency which may arise with sub xacts is that the status may stay FALSE while the setup has succeeded, however this on the safe side wrt to the security use case.


Sent via pgsql-hackers mailing list (
To make changes to your subscription:

Reply via email to