On 04/09/2023 16:56 CEST David G. Johnston <david.g.johnston@xxxxxxxxx> wrote: > On Monday, September 4, 2023, Erik Wienhold <ewie@xxxxxxxxx> wrote: > > > On 04/09/2023 11:51 CEST Lorusso Domenico <domenico.l76@xxxxxxxxx> wrote: > > > > > The original code in embedded in a function, but the problem is the same: > > > > Transaction control is not possible in functions. Only in procedures (CALL) > > and DO blocks. > > Then explain why the original savepoint command wasn’t a syntax, or runtime, > error? I don't need to because CREATE {FUNCTION | PROCEDURE} already fails because of ROLLBACK TO SAVEPOINT. And without a function to execute there can't be any runtime error because of SAVEPOINT. My point was about transaction control in plpgsql in general. > Plus, the error is syntax, usually when you try something that exists > but is disallowed the system gives you some kind of invalid state exception > at runtime, -- Erik