Re: Named arguments in function calls

From: Greg Stark <gsstark(at)mit(dot)edu>
To: Dennis Bjorklund <db(at)zigo(dot)dhs(dot)org>
Cc: Greg Stark <gsstark(at)mit(dot)edu>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Named arguments in function calls
Date: 2004-01-25 23:21:46
Message-ID: 87n08bvcl1.fsf@stark.xeocode.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Dennis Bjorklund <db(at)zigo(dot)dhs(dot)org> writes:

> On 25 Jan 2004, Greg Stark wrote:
>
> > > > foo (x => 13, y => 42)
> > > >
> >
> > Is it really necessary to steal it?
>
> Yes, it is necessary since the arguments to a function are just
> expressions. If you do not the above would be ambigious and there is no
> clean way to fix that.

Of course it's ambiguous. Just as f(a,b) is ambiguous in C. It could mean call
f with two arguments, or it could mean call f with the result of the
expression "a,b". It's "fixed" by just declaring "," special inside function
calls. If you want to use the operator in the function call you have to use an
extra set of parentheses.

I'm sure that's a bit harder when you want => to be a regular identifier
outside of a function call. And the dual meaning of => is a pretty big wart,
But the compatibility with Oracle would be awfully nice. Named parameters are
going to be pretty ubiquitous once they're supported.

--
greg

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Stark 2004-01-25 23:26:05 Re: Disaster!
Previous Message Andrew Dunstan 2004-01-25 23:00:09 Re: Named arguments in function calls