Re: variadic function support

Jeff Davis <[email protected]>
Newsgroups gmane.comp.db.postgresql.devel.patches
Message-ID <1215929164.11352.55.camel@jdavis>
On Tue, 2008-06-24 at 17:10 +0200, Pavel Stehule wrote:
> Hello
> 
> this version implements syntax based on argmodes.
> 
> 
> CREATE FUNCTION mleast(variadic numeric[]) RETURNS numeric AS $$
>     SELECT min($1[i])
>        FROM generate_subscripts($1,1) g(i);
> $$ LANGUAGE SQL;
> 

I don't have a strong opinion about whether the variadic argument is
declared as an array or scalar, so I am posting my comments about this
version of the patch as well.

This version also has a problem when declaring two functions "foo(int)"
and "foo(variadic int[])". In this version, the declaration is allowed
but the backend crashes when the function is called.

The variable "transform_variadic" should have some kind of comment. It
seems to be there to distinguish between when you're looking for a
candidate function for a function call, and when you're looking for a
candidate function for, e.g., CREATE FUNCTION. It's a little hard to
follow, and is probably the cause for the aformentioned crash.

Also, it doesn't seem to allow calls to a variadic function with zero
arguments, e.g. "mleast()". I think this should be allowed.

I suggest the following error message rewording:
"variadic argument isn't an array" should be something like: "variadic
argument must be an array".

Regards,
	Jeff Davis


-- 
Sent via pgsql-patches mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-patches
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.