On Saturday 30 June 2007 23:52, Postgres User wrote:

> How about this scenario:
> 
> func A()
> 
> begin
>    x  =  func B();
>    y  =  func C();
> 
>    z = func D();
> 
> end
> 
> Where func A, B, C, and D all update the db.  If a funciton is raised
> in func D(), will all the transactions in the other children be rolled
> back?
> Or do I need to add code to enable this?

(Noted correction in other reply).

It will be rolled back. When you don't begin a transaction explicitly,
postgresql creates one implicitely when you execute a function. So, calling a
function will always be atomic.


---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

Reply via email to