Re: Bug in how nulls are handled by plpgsql?

Stephan Szabo <sszabo@megazone23.bigpanda.com>

From: Stephan Szabo <sszabo@megazone23.bigpanda.com>
To: Jonathan Ellis <jellis@advocast.com>
Cc: pgsql-general@postgresql.org
Date: 2000-11-07T16:54:11Z
Lists: pgsql-general
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
>