D'Arcy J.M. Cain wrote:
> Thus spake Thomas Lockhart
> > Another side issue; any function called with a null parameter will
> > actually not get called at all! Postgres assumes that a function
> > called with null must return null, so doesn't bother calling the
> > routine...
>
> Did this get changed recently? AFAIK the routine gets called. It's just
> that the result is ignored and null is then returned. This bit me in the
> ass when I was working on the inet stuff. If I didn't check for NULL and
> return something my function would dump core but if I tried to deal with
> the NULL and return something sensible, the function returned NULL anyway.
>
> There was a discussion at the time about fixing this so that the function
> never got called as investigation showed that there were existing ones
> that would also crash if given null inputs. Did this ever happen?
It wasn't changed. But the isNull bool pointer (in-/out-
param) is only handed down as the second call argument if a
function is called via fmgr_c() and has exactly one argument
as defined in pg_proc.
Handling NULL on a per argument/return value base is one of
the long standing TODO's.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#========================================= wieck@debis.com (Jan Wieck) #