Bug in how nulls are handled by plpgsql?

Jonathan Ellis <jellis@advocast.com>

From: "Jonathan Ellis" <jellis@advocast.com>
To: <pgsql-general@postgresql.org>
Date: 2000-11-06T17:53:12Z
Lists: pgsql-general
bf2=# create function foo (varchar, varchar) returns varchar as '
begin
    return $1;
end;
' language 'plpgsql';

bf2'# bf2'# bf2'# bf2'# CREATE
bf2=# bf2=# select foo('asdf', null) from dual;
 foo
-----

(1 row)

Even though the function foo never references the null, apparently postgres
thinks, "oh, a function call with a null in it.  Must be null." and doesn't
even bother executing the function.  Bug?

On another null-related note, is there any way to make
select 'asdf' || null from dual

return 'asdf' without changing it to
select 'asdf' || coalesce(null, '') from dual

?

-Jonathan