Re: Function with default value not replacing old definition of the function
От | Rushabh Lathia |
---|---|
Тема | Re: Function with default value not replacing old definition of the function |
Дата | |
Msg-id | 460abcb10812102307i2c28104blba2077e31f5f7235@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Function with default value not replacing old definition of the function (Peter Eisentraut <peter_e@gmx.net>) |
Список | pgsql-hackers |
On Thu, Dec 11, 2008 at 12:33 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
Hmm, good point.
Yes Oracle replace the old definition of the function with the new one.
Rushabh Lathia wrote:Hmm, good point, but I'm not sure that replacing the old function is always right. For example, someone recently requested being able to sayHi,
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.
select myfunc(10, DEFAULT);
Hmm, good point.
so there would be some value to having both variants.
Do you have any comparisons with other systems (Oracle?) or other programming languages?
Yes Oracle replace the old definition of the function with the new one.
--
Rushabh Lathia
www.EnterpriseDB.com
В списке pgsql-hackers по дате отправления: