Sam Mason <sam(at)samason(dot)me(dot)uk> wrote:
> On Fri, Jul 24, 2009 at 09:31:13AM -0400, Tom Lane wrote:
> Hope nobody minds if I go off on a somewhat pedagogic bent here!
Not as long as you don't mind replies in kind. ;-)
> The fact that it happens to be a NULL *value* in one case
Well, according to Codd (and I tend to go with him on this) there is
no such thing. NULL is a way to flag a place where a value could be
stored, but is not -- because is unknown or is not applicable in that
context. (He seemed to feel it was a big weakness of SQL that it
didn't differentiate between these two conditions, but that's another
argument.) "NULL value" is an oxymoron.
>> SQL doesn't provide a test for this case that's separate from the
>> test involving null-ness of individual fields. Not much we can do
>> about it though. I'm not entirely sure that exposing the
>> distinction would be helpful anyway ...
>
> I think it would
The distinction between not having a tuple and having a tuple for
which you don't know any applicable values seems thin. I'm not sure
what that would really mean.
-Kevin