Hello it's not bug - PostgreSQL doesn't support parameter placeholder on this position. Use dynamic query instead - plpgsql statement EXECUTE.
regards Pavel Stehule 2009/9/3 Keith Cascio <ke...@cs.ucla.edu>: > > The following bug has been logged online: > > Bug reference: 5032 > Logged by: Keith Cascio > Email address: ke...@cs.ucla.edu > PostgreSQL version: 8.4.0 > Operating system: CentOS 5.3 (Linux) > Description: unexpected syntax error for plpgsql function returns > table > Details: > > Do this: > create function reproduce() returns table(foo integer) language plpgsql as > 'begin return query select 1 foo; end;'; > > Output I got: > ERROR: syntax error at or near "$1" > LINE 1: select 1 $1 > ^ > QUERY: select 1 $1 > CONTEXT: SQL statement in PL/PgSQL function "reproduce" near line 1 > > Output I expected: > CREATE FUNCTION > > The mechanism of this error involves the "foo" return column and the "foo" > alias being identical. Identifier collision? If I change one of the "foo"s > to "bar", the definition succeeds. There are fancier ways to cause similar > unexpected syntax errors, but this is close to a minimal example. > > -- > Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-bugs > -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs