BUG #2539: PL/PgSQL doesn't disallow COPY commands on compile, even though it disallows them. - Mailing list pgsql-bugs

From David Fetter
Subject BUG #2539: PL/PgSQL doesn't disallow COPY commands on compile, even though it disallows them.
Date
Msg-id 200607192246.k6JMkHXc053871@wwwmaster.postgresql.org
Whole thread Raw
Responses Re: BUG #2539: PL/PgSQL doesn't disallow COPY commands on compile, even though it disallows them.
List pgsql-bugs
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

pgsql-bugs by date:

Previous
From: Marius Žalinauskas
Date:
Subject: Re: BUG #2535: Unicode on Windows: aogonek is not distinguished from agrave
Next
From: Tom Lane
Date:
Subject: Re: BUG #2539: PL/PgSQL doesn't disallow COPY commands on compile, even though it disallows them.