>
> It appears that when a function is called if any of the paramaters are
> NULL all of the parameters are NULL.
> try:
> drop function nvl(int, int);
> create function nvl(int, int) returns boolean as '
> declare
> nonullo alias as $1;
> nullo alias as $2;
> begin
> return (nonullo IS NULL) AND (nullo IS NULL);
> end;' language 'plpgsql';
> select nvl(i,0) from a;
> you should get:
> nvl
> ---
> t
> t
> f
> t
> (4 rows)
Don't blame PL/pgSQL for that. There is only one bool isNull
pointer given to PL handlers. How should the PL handler know,
which of the arguments are null then? As I said on another
thread, the function call interface needs to get redesigned.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#======================================== jwieck@debis.com (Jan Wieck) #