Thread: add parameter to existing function

add parameter to existing function

From
Peter Kroon
Date:
Hi,

I can use: create or replace function etc....
to alter a function.

However, this will create a new function instead of replacing the old one when adding a parameter.
Is this possible without the use of DROP and CASCADE?

The function that I'm trying to alter is on some tables a default value.

Best,
Peter

Re: add parameter to existing function

From
Merlin Moncure
Date:
On Tue, Dec 10, 2013 at 8:26 AM, Peter Kroon <plakroon@gmail.com> wrote:
> Hi,
>
> I can use: create or replace function etc....
> to alter a function.
>
> However, this will create a new function instead of replacing the old one
> when adding a parameter.
> Is this possible without the use of DROP and CASCADE?

nope!  Changing input or output arguments what identifies a function
basically as in any overloaded language. Imagine if you had inlined
that function call into a view. How would that view be adjusted?

The way to deal with this, as in many things with postgres or database
in general, is to get *out* of the habit of using UI tools to manage
schema structures and get in the habit of maintaining proper schema
scripts, particularly for views in functions.  This makes DROP a non
issue: after CASCADE eats your various views or whatever, you then
just have to reapply your view containing script.

merlin



merlin