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 (pgsql-patches@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-patches