BUG #2539: PL/PgSQL doesn't disallow COPY commands on compile, even though it disallows them.
The following bug has been logged online:
Bug reference: 2539
Logged by: David Fetter
Email address: david@fetter.org
PostgreSQL version: All
Operating system: Linux and OSX that I've tested
Description: PL/PgSQL doesn't disallow COPY commands on compile, even
though it disallows them.
Details:
Here's a repro:
davidfetter=> SHOW check_function_bodies ;
check_function_bodies
-----------------------
on
(1 row)
davidfetter=> CREATE OR REPLACE FUNCTION bad_func()
RETURNS VOID
LANGUAGE plpgsql
AS $$
BEGIN
CREATE TEMPORARY TABLE bad(i INTEGER) ON COMMIT DROP;
INSERT INTO bad
SELECT s.i FROM generate_series(1,10) AS s(i);
COPY bad TO stdout;
END;
$$;
CREATE FUNCTION
davidfetter=> select bad_func();
ERROR: SPI_execute_plan failed executing query "COPY bad TO stdout":
SPI_ERROR_COPY
CONTEXT: PL/pgSQL function "bad_func" line 5 at SQL statement
"David Fetter" <david@fetter.org> writes:
Description: PL/PgSQL doesn't disallow COPY commands on compile, even
though it disallows them.
There are many many things that won't be checked until execution.
I can't get excited about this one.
regards, tom lane
On Wed, Jul 19, 2006 at 07:02:15PM -0400, Tom Lane wrote:
"David Fetter" <david@fetter.org> writes:
Description: PL/PgSQL doesn't disallow COPY commands on
compile, even though it disallows them.There are many many things that won't be checked until execution. I
can't get excited about this one.
I just wanted to get it in the queue, wherever it should be. :)
Cheers,
D
--
David Fetter <david@fetter.org> http://fetter.org/
phone: +1 415 235 3778 AIM: dfetter666
Skype: davidfetter
Remember to vote!