Tom Lane wrote:
> Bruno Wolff III <bruno@wolff.to> writes:
>>What happens if there is more than one existing function with that name
>>already. Do all of the old functions get deleted?
>
> What happens if there are existing references to the function using the
> old parameter list?
>
> The current approach is that if you want to change the parameter list or
> result type, you have to issue DROP FUNCTION, with the resulting cascade
> of any dependent objects. I think trying to change that would be a very
> bad idea. It'd create a real mess in terms of consistency of views, and
> what does it really buy you notationally over DROP/CREATE?
What I see is that the overloading is a very cool feature, but is not
necessary in most cases, and it introduces unnecessary administration
hassles. If there would be an attribute stating if a procedure has been
created overlodable (enabled by default, for backwards-compabitility),
then CREATE OR REPLACE would always replace the current one, regardless
of the parameters, and DROP would not require any parameters at all, and
a creation of a function with the NOOVERLOAD attribute would not be
allowed if there is already a function marked for overloading.
Cheers,
Ezequiel Tolnay