Function with defval returns wrong result

Started by Rushabh Lathiaabout 17 years ago2 messages
#1Rushabh Lathia
rushabh.lathia@gmail.com

Hi All,

Following test returns wrong result ..

Testcase ( on 8.4 cvs head )
=======================

CREATE OR REPLACE FUNCTION f1(retval VARCHAR DEFAULT 'Argument') RETURNS
VARCHAR as
$$
BEGIN
return retval;
END;
$$ LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION f2(p1 IN int, p2 IN VARCHAR DEFAULT f1())
RETURNS VARCHAR AS
$$
BEGIN
RETURN p2;
END;
$$ LANGUAGE plpgsql;

postgres=# select f2(10);
f2
----

(1 row)

When we run the f2() it should return the output as the defvalue of f1()
function, but its returning null.

Thanks,
Rushabh Lathia
www.EnterpriseDB.com

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Rushabh Lathia (#1)
Re: Function with defval returns wrong result

"Rushabh Lathia" <rushabh.lathia@gmail.com> writes:

Following test returns wrong result ..

Ooops, seems we forgot to add default arguments recursively.
Fixed, thanks for the report!

regards, tom lane