On Fri, Apr 29, 2011 at 3:29 AM, Jack Douglas <j...@douglastechnology.co.uk> wrote: > NULL is not unique to boolean, but UNKNOWN is - it would surely be wrong to > have no mention of it at all on this page. This is because the boolean type > is the only one used to represent truth (or logical) values. One of the > comments from the link you provided: > >> What’s even more interesting is that for BOOLEAN they invented the keyword >> UNKNOWN and the 2003 standard states “The null value of the boolean data >> type is equivalent to the Unknown truth value.” So for BOOLEAN (and only >> BOOLEAN AFAICT) you’re supposed to say WHERE <boolean primary> IS [NOT] >> UNKNOWN. And in the definition of “literal”, which is supposed to “Specify a >> non-null value”, “boolean literal” is equated to TRUE, FALSE or UNKNOWN (but >> the latter is equivalent to a “null value” a few pages later).
Ah, OK - I had forgotten about that SQL syntax. I do agree that this sentence: | A third state, "unknown", is represented by the SQL null value. is particularly confusing, suggesting that "unknown" is a valid boolean literal, on equal footing with "true" and "false". We do document the use of IS [NOT] UNKNOWN already, see: <http://www.postgresql.org/docs/current/interactive/functions-comparison.html> and IMO that page is the appropriate place for such discussion. So maybe we just need a link to that page, and should strip out the confusing sentence about "third state" entirely? Patch attached. Josh
boolean_unknown.patch
Description: Binary data
-- Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-docs