Re: BUG #5108: plpgsql function name conflict with table alias

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Balazs Klein <balazs(dot)klein(at)gmail(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #5108: plpgsql function name conflict with table alias
Date: 2009-10-13 01:04:51
Message-ID: 15732.1255395891@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Balazs Klein <balazs(dot)klein(at)gmail(dot)com> writes:
> CREATE OR REPLACE FUNCTION instreq(OUT instreq_id integer)
> ...
> Select instreq.instreq_id From aaa instreq

The problem that you've got here is that instreq.instreq_id is in fact
a qualified reference to the function's OUT parameter. We didn't
support qualification of function parameter names in 8.1, but we do now.

In general, I'd say that this is bad coding style. Not only do you have
an ambiguous use of "instreq_id" (is it a column reference or a
parameter reference?), but the name "instreq" *also* has multiple
possible referents in this function. You'll save yourself a lot of
headaches if you avoid that sort of thing.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Kalev Toots 2009-10-13 05:31:44 BUG #5110: lower() function
Previous Message Turner, Ian 2009-10-13 00:42:06 Kerberos authentication, Active Directory, and PostgreSQL