Re: Calling PL functions with named parameters

Поиск
Список
Период
Сортировка
От Jim C. Nasby
Тема Re: Calling PL functions with named parameters
Дата
Msg-id 20040813224907.GH87347@decibel.org
обсуждение исходный текст
Ответ на Calling PL functions with named parameters  (David Fetter <david@fetter.org>)
Ответы Re: Calling PL functions with named parameters  (Robert Treat <xzilla@users.sourceforge.net>)
Список pgsql-hackers
I would personally find this useful, but I would suggest using Oracle's
syntax of SELECT func(a=>2, b=>'b', ...);

Having said that, having the concept of DEFAULT for parameters wolud be
even more useful, ie:

CREATE FUNCTION blah (   a int   , b int DEFAULT 0
);

SELECT blah(1,0);
and
SELECT blah(1);
would do the same thing. (Yes, I know there's a work-around, but it's a
bit of a pain if you've got 10 parameters that could be omitted).

On Fri, Aug 13, 2004 at 02:41:48PM -0700, David Fetter wrote:
> Kind people,
> 
> I've brought this up before, and with Dennis Bjőrklund's help, would
> like to bring it up again.  Here's the idea:
> 
> I'd like to be able to create functions with named parameters that
> could be called with the names in any order.  For example,
> 
> CREATE OR REPLACE FUNCTION foo_func(name TEXT, val INTEGER) AS ...
> 
> SELECT foo_func(val AS 23, name AS 'Name goes here');
> 
> and have it Do The Right Thing.
> 
> Dennis has pointed out that mixing the call-with-named-parameter
> interface with call-by-order-of-parameters one would cause confusion,
> and I think it would be OK to disallow this type mixing, so
> 
> SELECT foo_func(name AS 'yet another name', 35);
> 
> would be disallowed.
> 
> A calling convention that names parameters makes it a lot easier to
> track just exactly what parameter is set to which value, and lets
> people not have to memorize what order those named parameters appear
> in.  On a related note, it would also be nice to have default
> parameters and some way to say to use them.
> 
> Well, that's my thoughts so far.  What are yours?
> 
> Cheers,
> D
> -- 
> David Fetter david@fetter.org http://fetter.org/
> phone: +1 510 893 6100   mobile: +1 415 235 3778
> 
> Remember to vote!
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend
> 

-- 
Jim C. Nasby, Database Consultant               decibel@decibel.org 
Give your computer some brain candy! www.distributed.net Team #1828

Windows: "Where do you want to go today?"
Linux: "Where do you want to go tomorrow?"
FreeBSD: "Are you guys coming, or what?"


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Oliver Jowett
Дата:
Сообщение: Re: Calling PL functions with named parameters
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Postgres development model