Re: [HACKERS] NULL handling question - Mailing list pgsql-hackers

From D'Arcy" "J.M." Cain
Subject Re: [HACKERS] NULL handling question
Date
Msg-id m10RfoX-0000c3C@druid.net
Whole thread Raw
In response to Re: [HACKERS] NULL handling question  (Thomas Lockhart <lockhart@alumni.caltech.edu>)
List pgsql-hackers
Thus spake Thomas Lockhart
> > I don't seek this in the source, but i think, all function, who take a 
> > NULL value as parameter can't return with a NOT NULL value.
> > But why?
> 
> Postgres assumes that a NULL input will give a NULL output, and never
> calls your routine at all. Since NULL means "don't know", there is a

Actually, the problem is that it does call the function.  After it
returns it throws away the result and so the effect is that the function
never gets called but in the meantime, the function has to deal with
NULL inputs for nothing.  This has been hanging around since the last
release.  I looked at the dispatch code but it wasn't very clear where
we have to put the test to do this correctly.  Maybe we can get it cleaned
up before release this time.


> strong argument that this is correct behavior.

I agree but recently I said that there was no stored procedures in PostgreSQL
and someone corrected me pointing out that functions with no return were
in effect stored procedures.  Do the same arguments apply?  If a procedure
is passed a NULL argument, should the side effects be bypassed?

-- 
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 424 2871     (DoD#0082)    (eNTP)   |  what's for dinner.


pgsql-hackers by date:

Previous
From: Thomas Lockhart
Date:
Subject: Re: [HACKERS] Speedup idea: avoid using SQL procedures as aliases
Next
From: Thomas Lockhart
Date:
Subject: Re: [HACKERS] Parser doesn't grok unqualified array element