Alvaro Herrera <[EMAIL PROTECTED]> writes: > I don't think we should explicitly forbid it. I think it should be > forbidden to close the outermost transaction inside a function (else the > function would not be able to terminate correctly), but for levels > before that one it'd be OK.
More specifically, a function cannot close any xact that was open when it was called. It can only close xacts that it started (or equivalently, roll back to savepoints that it established). Otherwise the behavior is nonsensical. Rollback of an outer transaction would mean making like the function call never even happened, so the function certainly couldn't expect to keep control. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly