This is not very user-friendly:

postgres=# do $$
begin
COMMIT;
end;
$$;
ERROR: SPI_execute_plan_with_paramlist failed executing query "COMMIT":
SPI_ERROR_TRANSACTION
CONTEXT: PL/pgSQL function "inline_code_block" line 2 at SQL statement

Clearly we don't support that, but seems like it would deserve a better
error message.

Curiously, we *do* give a better error message if you try that with EXECUTE:

postgres=# do $$
begin
EXECUTE 'COMMIT';
end;
$$;
ERROR: cannot begin/end transactions in PL/pgSQL
HINT: Use a BEGIN block with an EXCEPTION clause instead.
CONTEXT: PL/pgSQL function "inline_code_block" line 2 at EXECUTE statement

Barring objections, I'll add the same error message to the non-execute
codepath.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppgsql-hackers @
categoriespostgresql
postedOct 28, '10 at 10:47a
activeOct 28, '10 at 10:47a
posts1
users1
websitepostgresql.org...
irc#postgresql

1 user in discussion

Heikki Linnakangas: 1 post

People

Translate

site design / logo © 2022 Grokbase