Path: dp-news.maxwell.syr.edu!spool.maxwell.syr.edu!drn.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!news.tele.dk!news.tele.dk!small.news.tele.dk!uninett.no!ntnu.no!not-for-mail
From: Jon Heggland <heggland@idi.ntnu.no>
Newsgroups: comp.databases.theory
Subject: Re: So what's null then if it's not nothing?
Date: Mon, 12 Dec 2005 11:08:33 +0100
Organization: IDI/NTNU
Lines: 36
Message-ID: <MPG.1e076a8b1d763c4998973e@news.ntnu.no>
References: <1133896860.912140.197720@f14g2000cwb.googlegroups.com> <MPG.1e011306d5b03e7098972e@news.ntnu.no> <1133992308.569062.326920@g14g2000cwa.googlegroups.com> <MPG.1e0248d55a8ab81d98972f@news.ntnu.no> <1134052281.291970.61920@g44g2000cwa.googlegroups.com> <MPG.1e02744fd5c503d1989734@news.ntnu.no> <tsbhp1dl9592eqd6b3j78boa18dlk7veds@4ax.com> <MPG.1e038418267e1485989737@news.ntnu.no> <mjvjp1p04cks0cimjmep5uvh8g9ek4p45n@4ax.com> <MPG.1e042990d2a1555798973c@news.ntnu.no> <mr6pp1dthae49qdiudmgcp8eh66tmve5pp@4ax.com>
NNTP-Posting-Host: coleburn.idi.ntnu.no
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-15"
Content-Transfer-Encoding: 7bit
X-Trace: orkan.itea.ntnu.no 1134382109 31179 129.241.111.99 (12 Dec 2005 10:08:29 GMT)
X-Complaints-To: usenet@itea.ntnu.no
NNTP-Posting-Date: Mon, 12 Dec 2005 10:08:29 +0000 (UTC)
User-Agent: MicroPlanet-Gravity/2.60.2060
Xref: dp-news.maxwell.syr.edu comp.databases.theory:35064

In article <mr6pp1dthae49qdiudmgcp8eh66tmve5pp@4ax.com>, 
hugo@pe_NO_rFact.in_SPAM_fo says...
> On Fri, 9 Dec 2005 23:54:33 +0100, Jon Heggland wrote:
> 
> But you're correct - in the SQL-99 standard, a BOOLEAN (sic!) datatype
> is introduced. According to the description in the standard, a boolean
> value is either True or False. "The truth value of _unknown_ is
> sometimes represented by the null value".

Yep, according to Codd's bad precedent.

> There is a reson to object to the use of "the null value" to represent
> the truth value Unknown. Elsewhere in the standard, the Null value is
> defined as "A special value that is used to indicate the absence of any
> data value". Of course, if Unknown is considered to be a data value for
> a boolean data type (and the rest of the standard clearly indicates it
> is), it should not be represented by the same symbol that is also used
> to represent the absence of a data value, since a data value can not be
> absent and present at the same time.

I agree. Codd does not.

Thanks a lot for the summary of SQL booleans, but you didn't mention the 
most interesting thing: When you check two SQL-boolean attributes for 
equality (using '=', in a WHERE clause), and both are Unknown, what is 
the result? True or Unknown?

> Removing the row and column for NULL from the truth tables and replacing
> them by a line that says that NULLs propagate changes only the
> representation of the tables, not the content. 

No. NULL is not part of the domain; it's part of the meta-language. :) 
Sophistry, yes, but no worse than the convoluted definitions and rules 
for how NULLs influence other parts of the system.
-- 
Jon
