Under 7.0.x and earlier there's only one flag to hold
the isnull state of all parameters. If any are null all are
null and I think there's a related output issue. Under current
sources this is done the way you'd expect.
As for the second question, not really that I can think of, but that
behavior is correct per SQL.
Stephan Szabo
sszabo@bigpanda.com
On Mon, 6 Nov 2000, Jonathan Ellis wrote:
> 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
>