On Mon, Aug 27, 2012 at 7:13 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> I agree that redefining the lexer behavior is a can of worms. What I
>> don't understand is why f(2+2) can't call f(smallint) when that's the
>> only extant f. It seems to me that we could do that without breaking
>> anything that works today: if you look for candidates and don't find
>> any, try again, allowing assignment casts the second time.
>
> Yeah, possibly. Where would you fit that in the existing sequence of
> tests?
> http://www.postgresql.org/docs/devel/static/typeconv-func.html
I think:
If step 4a would result in discarding all candidates, then instead
discard candidate functions for which the input types do not match and
cannot be converted -- using an ASSIGNMENT conversion -- to match.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company