Re: WIP: Allow SQL-language functions to reference parameters by parameter name

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Merlin Moncure <mmoncure@gmail.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Andrew Dunstan <andrew@dunslane.net>, Peter Eisentraut <peter_e@gmx.net>, "David E. Wheeler" <david@kineticode.com>, Pavel Stehule <pavel.stehule@gmail.com>, Matthew Draper <matthew@trebex.net>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2011-04-08T16:11:37Z
Lists: pgsql-hackers
Merlin Moncure <mmoncure@gmail.com> writes:
> On Thu, Apr 7, 2011 at 8:58 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Well, if we're going to consider 100% backwards compatibility a "must",
>> then we should just stick with what the submitted patch does, ie,
>> unqualified names are matched first to query columns, and to parameters
>> only if there's no column match. This is also per spec if I interpreted
>> Peter's comments correctly. The whole thread started because I
>> suggested that throwing an error for ambiguous cases might be a better
>> design in the long run, but apparently long term ease of code
>> maintenance is far down our list of priorities ...

> +1, as long as you are 100.0% sure this is not going to break any
> existing code.  For example, what happens if the argument is named the
> same as a table?

I was a bit sloppy in my statement above --- what the code is actually
doing (or should be doing) is matching to parameters only after the core
parser fails to find any match.  So "unqualified reference to whole-row"
would take precedence too.

			regards, tom lane