Re: autonomous transactions

Decibel! <decibel@decibel.org>

From: Decibel! <decibel@decibel.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Simon Riggs <simon@2ndquadrant.com>, Neil Conway <neilc@samurai.com>, Pavel Stehule <pavel.stehule@gmail.com>, Alvaro Herrera <alvherre@commandprompt.com>, "Roberts, Jon" <Jon.Roberts@asurion.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2008-01-25T06:27:40Z
Lists: pgsql-hackers
On Wed, Jan 23, 2008 at 05:50:02PM -0500, Tom Lane wrote:
> Simon Riggs <simon@2ndquadrant.com> writes:
> >> From looking at how Oracle does them, autonomous transactions are
> >> completely independent of the transaction that originates them -- they
> >> take a new database snapshot. This means that uncommitted changes in the
> >> originating transaction are not visible to the autonomous transaction.
> 
> > Oh! Recursion depth would need to be tested for as well. Nasty.
> 
> Seems like the cloning-a-session idea would be a possible implementation
> path for these too.

Oracle has a feature where you can effectively save a session and return
to it. For example, if filling out a multi-page web form, you could save
state in the database between those calls. I'm assuming that they use
that capability for their autonomous transactions; save the current
session to the stack, clone it, run the autonomous transaction, then
restore the saved one.
-- 
Decibel!, aka Jim C. Nasby, Database Architect  decibel@decibel.org 
Give your computer some brain candy! www.distributed.net Team #1828