Re: Issues for named/mixed function notation patch - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Issues for named/mixed function notation patch
Date
Msg-id 8556.1254953874@sss.pgh.pa.us
Whole thread Raw
In response to Re: Issues for named/mixed function notation patch  (Jeff Davis <pgsql@j-davis.com>)
Responses Re: Issues for named/mixed function notation patch  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: Issues for named/mixed function notation patch  (Jeff Davis <pgsql@j-davis.com>)
List pgsql-hackers
Jeff Davis <pgsql@j-davis.com> writes:
> On Wed, 2009-10-07 at 17:45 -0400, Tom Lane wrote:
>> I think what he was considering was the question of insisting that
>> the VARIADIC keyword be attached to the named argument that actually
>> matches the VARIADIC parameter.

> It seems strange to me if we have a situation where changing the call:
>   foo(a, b, VARIADIC c)
> to be more explicit by using named call notation:
>   foo(a AS x, b AS y, VARIADIC c AS z)
> is "less correct" in the sense that the VARIADIC keyword goes from
> "required" to "ignored".

No, that's not what I'm driving at.  The small change that I've got in
mind would require you to say VARIADIC, but it would allow the function
to match both the above call and   foo(a AS x, c AS z, VARIADIC b AS y)
when really z is the variadic parameter in this case.  I'm not sure if
this would bother anyone or not.  It seems impossible that a function
could ever have more than one variadic parameter, so there's not really
any ambiguity from maintaining the syntactic rule that the VARIADIC
keyword is at the end even when the variadic argument isn't, but it
might look a bit odd.

What I *don't* want to do is fix this by allowing/requiring   foo(a AS x, VARIADIC c AS z, b AS y)
because it would be a bigger change in the grammar output structure than
seems warranted.  We could possibly have VARIADIC throw an error if the
named argument that matches to the variadic parameter isn't the last
one, but I'm not sure that that's important rather than just pedantry.
People would probably tend to write it that way anyway.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: Issues for named/mixed function notation patch
Next
From: Alvaro Herrera
Date:
Subject: Re: [COMMITTERS] pgsql: Make it possibly to specify GUC params per user and per database.