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?
On 6/30/07, Wiebe Cazemier <[EMAIL PROTECTED]> wrote:
On Saturday 30 June 2007 23:14, Postgres User wrote:
> A basic question about raising exceptions in Postgres:
>
> If Function A calls Function B
>
> and Func B raises an exception, will the exception roll back the
> transaction in Func A by default? Or do I need to trap and re-raise
> the exception in Func A?
>
> Thanks.
Any exception aborts the transaction. That's how exceptions work. If you don't
catch them, they bubble all the way to the surface. Otherwise it would be too
much like if-statement error checking.
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq