Christophe Pettus writes:
> That's an interesting question. It appears to be a no-op, although a quick
> scan of the code doesn't reveal why. Here's an illustrative test case:
This test case would be less confusing if the outer handler did
RAISE NOTICE 'in outer exception handler: %', sqler
> On Mar 22, 2025, at 21:37, Kevin Stephenson wrote:
>
> Christophe and Tom, thank you for your responses, but I'm still a bit
> confused. In my original email, the Test 2 case is allowing a ROLLBACK in the
> EXCEPTION clause without throwing an error. Is it a NOP ROLLBACK being
> applied t
Kevin Stephenson writes:
> Christophe and Tom, thank you for your responses, but I'm still a bit
> confused. In my original email, the Test 2 case is allowing a ROLLBACK in the
> EXCEPTION clause without throwing an error. Is it a NOP ROLLBACK being
> applied to an aborted subTX, a real full RO
lease advise.
Thanks,
Kevin Stephenson
From: Tom Lane
Sent: Saturday, March 22, 2025 7:59 AM
To: Christophe Pettus
Cc: Kevin Stephenson ; pgsql-gene...@postgresql.org
Subject: Re: Nested Stored Procedures - ERROR: invalid transaction termination
2D000
Chris
Christophe Pettus writes:
> A procedure cannot issue top-level transaction control statements from within
> an exception block, and attempting to do so raises the error you saw. This
> includes procedures that are called from within an exception block.
Yeah. Postgres doesn't have autonomous t
Hello,
> On Mar 22, 2025, at 08:38, Kevin Stephenson wrote:
> • When a top-level stored procedure is called it implicitly creates a TX
> if there is no current TX.
> • When a BEGIN/EXCEPTION block is used it implicitly creates a subTX for
> that block.
These statements are correct.
>