Re: Nested Stored Procedures - ERROR: invalid transaction termination 2D000 - Mailing list pgsql-general

From Tom Lane
Subject Re: Nested Stored Procedures - ERROR: invalid transaction termination 2D000
Date
Msg-id 1830668.1742655550@sss.pgh.pa.us
Whole thread Raw
In response to Re: Nested Stored Procedures - ERROR: invalid transaction termination 2D000  (Christophe Pettus <xof@thebuild.com>)
Responses Re: Nested Stored Procedures - ERROR: invalid transaction termination 2D000
List pgsql-general
Christophe Pettus <xof@thebuild.com> writes:
> A procedure cannot issue top-level transaction control statements from within an exception block, and attempting to
doso raises the error you saw.  This includes procedures that are called from within an exception block. 

Yeah.  Postgres doesn't have autonomous transactions (not yet anyway),
and you can't fake them like that.

A way that does work, I believe, is to set up a second session with
dblink[1] and use that to issue the autonomous transaction.  Ugly
and inefficient for sure, but if you've gotta have it...

            regards, tom lane

[1] https://www.postgresql.org/docs/current/dblink.html



pgsql-general by date:

Previous
From: Christophe Pettus
Date:
Subject: Re: Nested Stored Procedures - ERROR: invalid transaction termination 2D000
Next
From: Senthilnathan M
Date:
Subject: Getting all the plans.