The following functions fail: create or replace function docopy(int[]) returns int as $$ copy (select unnest($1)) to stdout; select 0; $$ language sql; ERROR: there is no parameter $1
create or replace function docopy(int[]) returns int as $$ begin copy (select unnest($1)) to stdout; end; $$ language plpgsql; ERROR: SPI_execute_plan failed executing query "copy (select unnest( $1 )) to stdout": SPI_ERROR_COPY this error is expected i guess, plpgsql doesn't support copy to stdout. create or replace function docopy(_stuff int[]) returns int as $$ begin copy (select unnest(_stuff)) to '/tmp/scratch'; end; $$ language plpgsql; ERROR: there is no parameter $1 Also, copy does not allow variable substitution for the destination file. Dynamic sql is one work around, but EXECUTE USING does not work: create or replace function docopy(_stuff int[]) returns int as $$ begin execute 'copy (select unnest($1)) to ''/tmp/scratch''' using _stuff; end; $$ language plpgsql; ERROR: there is no parameter $1 merlin -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs