>>>>> "Tom" == Tom Lane <tgl@sss.pgh.pa.us> writes:
Tom> I would bet money that that "_SPI_current->internal_xact" thing is
Tom> wrong/inadequate.
In particular this looks wrong to me: after doing:
do $$
begin
execute 'declare foo cursor with hold for select 1/x as a from (values (1),(0)) v(x)';
commit; -- errors within the commit
end;
$$;
ERROR: division by zero
CONTEXT: PL/pgSQL function inline_code_block line 1 at COMMIT
the SPI stack is not cleaned up at all, and _SPI_connected is >= 0 even
when back at the main backend command loop.
--
Andrew (irc:RhodiumToad)