Where func A, B, C, and D all update the db.  If an EXCEPTION 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, Postgres User <[EMAIL PROTECTED]> 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?


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 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

Reply via email to