On Tue, Dec 16, 2008 at 9:18 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> "Robert Haas" <robertmhaas@gmail.com> writes:
>> I wonder whether the whole architecture is wrong here. Perhaps when a
>> function is created with N arguments of which M have default values,
>> we should actually create M entries in pg_proc: one for each possible
>> number of arguments from N-M up through N.
>
> That's been considered and rejected before, in the context of the
> variadic-function patch which has a lot of the same issues. What it
> mostly does is bloat pg_proc.
Only if you have a large number of functions with a large number of
optional arguments each. That's possible, I suppose, but it hardly
seems likely, or worth worrying about.
>> I think this would kill all of the problems reported thus far at one
>> blow.
>
> No, it doesn't resolve any of them ... particularly not the ones
> associated with defaults for polymorphics.
I think that's hyperbole. You would probably still need to forbid
non-polymorphic defaults for polymorphic parameters (you might be able
to make NULL work, and maybe the empty array for anyarray... not
sure), but I think that most of the other issues you raised would be
addressed by my proposal. You may hate it anyway; I'm OK with that.
:-)
...Robert