[CC to -hackers] Dave Cramer wrote: > On Mon, 26 Aug 2019 at 13:43, Laurenz Albe <laurenz.a...@cybertec.at> > wrote: > > Dave Cramer wrote: > > > As I said, I'd entertain a connection parameter that switched the > > > CALL to call procedures but ideally you'd complain to the server > > > folks to make Procedures useful. > > > > Apart from the obvious problem that procedures make life hard for > > the JDBC driver, because it does not know if it shall render a call > > as SELECT or CALL: > > What is missing in PostgreSQL procedures to make them useful? > > being able to use transactions inside a procedure inside a > transaction.
test=> CREATE OR REPLACE PROCEDURE testproc() LANGUAGE plpgsql AS $$BEGIN PERFORM 42; COMMIT; PERFORM 'x'; END;$$; CREATE PROCEDURE test=> CALL testproc(); CALL test=> BEGIN; BEGIN test=> CALL testproc(); ERROR: invalid transaction termination CONTEXT: PL/pgSQL function testproc() line 1 at COMMIT Oops. I find that indeed surprising. What is the rationale for this? Yours, Laurenz Albe