diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml
index 9c0e8b6fafd..902f9b2b99c 100644
--- a/doc/src/sgml/datatype.sgml
+++ b/doc/src/sgml/datatype.sgml
@@ -2888,37 +2888,36 @@ SELECT EXTRACT(days from '80 hours'::interval);
- Valid literal values for the true
state are:
-
- TRUE
- 't'
- 'true'
- 'y'
- 'yes'
- 'on'
- '1'
-
- For the false
state, the following values can be
- used:
-
- FALSE
- 'f'
- 'false'
- 'n'
- 'no'
- 'off'
- '0'
-
- Leading or trailing whitespace is ignored, and case does not matter.
- The key words
- TRUE and FALSE are the preferred
- (SQL-compliant) usage.
+ Boolean constants can be represented in SQL queries by the SQL
+ key words TRUE, FALSE,
+ and NULL.
- shows that
- boolean values are output using the letters
- t and f.
+ The datatype input function for type boolean accepts these
+ string representations for the true
state:
+
+ true
+ yes
+ on
+ 1
+
+ and these representations for the false
state:
+
+ false
+ no
+ off
+ 0
+
+ Unique prefixes of these strings are also accepted, for
+ example t or n.
+ Leading or trailing whitespace is ignored, and case does not matter.
+
+
+
+ The datatype output function for type boolean always emits
+ either t or f, as shown in
+ .
@@ -2940,6 +2939,27 @@ SELECT * FROM test1 WHERE a;
t | sic est
+
+
+ The key words TRUE and FALSE are
+ the preferred (SQL-compliant) method for writing
+ Boolean constants in SQL queries. But you can also use the string
+ representations by following the generic string-literal constant syntax
+ described in , for
+ example 'yes'::boolean.
+
+
+
+ Note that the parser automatically understands
+ that TRUE and FALSE are of
+ type boolean, but this is not so
+ for NULL because that can have any type.
+ So in some contexts you might have to cast NULL
+ to boolean explicitly, for
+ example NULL::boolean. Conversely, the cast can be
+ omitted from a string-literal Boolean value in contexts where the parser
+ can deduce that the literal must be of type boolean.
+