From: | "Keith Cascio" <keith(at)cs(dot)ucla(dot)edu> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #5032: unexpected syntax error for plpgsql function returns table |
Date: | 2009-09-03 01:22:35 |
Message-ID: | 200909030122.n831MZi9045894@wwwmaster.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged online:
Bug reference: 5032
Logged by: Keith Cascio
Email address: keith(at)cs(dot)ucla(dot)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.
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2009-09-03 03:27:46 | Re: BUG #5032: unexpected syntax error for plpgsql function returns table |
Previous Message | Robert Haas | 2009-09-03 01:21:55 | Re: BUG #5028: CASE returns ELSE value always when type is"char" |