Re: Function with default value not replacing old definition of the function

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Rushabh Lathia <rushabh(dot)lathia(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org, rushabh(dot)lathia(at)enterprisedb(dot)com
Subject: Re: Function with default value not replacing old definition of the function
Date: 2008-12-11 07:03:22
Message-ID: 4940BB3A.5060206@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Rushabh Lathia wrote:
> Hi,
>
> Testcase: (8.4 CVS head)
> ====================
>
> CREATE OR REPLACE FUNCTION myfunc(y int)
> RETURNS INTEGER AS $$
> select 100;
> $$ language sql;
>
> CREATE OR REPLACE FUNCTION myfunc(y int, x integer DEFAULT 100)
> RETURNS INTEGER AS $$
> select 200;
> $$ language sql;
>
> select myfunc(10);
>
> myfunc
> ----------
> 100
> (1 row)
>
> When create the same function again by added one default value, while
> calling the function old function getting called.
>
> It seems that, function with defval not making any sense, if we want to
> call the new function then we need to pass defval as well.

Hmm, good point, but I'm not sure that replacing the old function is
always right. For example, someone recently requested being able to say

select myfunc(10, DEFAULT);

so there would be some value to having both variants.

Do you have any comparisons with other systems (Oracle?) or other
programming languages?

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Rushabh Lathia 2008-12-11 07:07:49 Re: Function with default value not replacing old definition of the function
Previous Message Rushabh Lathia 2008-12-11 06:45:48 Function with default value not replacing old definition of the function