Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

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(at)fetter(dot)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



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group