Обсуждение: BUG #2539: PL/PgSQL doesn't disallow COPY commands on compile, even though it disallows them.
BUG #2539: PL/PgSQL doesn't disallow COPY commands on compile, even though it disallows them.
От
"David Fetter"
Дата:
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!