Doc: explain that the string types can't store \0 (ASCII NUL).
authorTom Lane <[email protected]>
Tue, 8 Dec 2020 17:06:19 +0000 (12:06 -0500)
committerTom Lane <[email protected]>
Tue, 8 Dec 2020 17:06:19 +0000 (12:06 -0500)
This restriction was mentioned in connection with string literals,
but it wasn't made clear that it's a general restriction not just
a syntactic limitation in query strings.

Per unsigned documentation comment.

Discussion: https://postgr.es/m/160720552914.710.16625261471128631268@wrigleys.postgresql.org

doc/src/sgml/datatype.sgml

index 5c8a92e250834163d2f540fbbedb1f6f2b7539bf..9eb19a1c616303536508eadc7fc3081f3fa1ab80 100644 (file)
@@ -1209,6 +1209,14 @@ SELECT '52093.89'::money::numeric::float8;
     regular expressions.
    </para>
 
+   <para>
+    The characters that can be stored in any of these data types are
+    determined by the database character set, which is selected when
+    the database is created.  Regardless of the specific character set,
+    the character with code zero (sometimes called NUL) cannot be stored.
+    For more information refer to <xref linkend="multibyte"/>.
+   </para>
+
    <para>
     The storage requirement for a short string (up to 126 bytes) is 1 byte
     plus the actual string, which includes the space padding in the case of
@@ -1246,10 +1254,7 @@ SELECT '52093.89'::money::numeric::float8;
    <para>
     Refer to <xref linkend="sql-syntax-strings"/> for information about
     the syntax of string literals, and to <xref linkend="functions"/>
-    for information about available operators and functions. The
-    database character set determines the character set used to store
-    textual values; for more information on character set support,
-    refer to <xref linkend="multibyte"/>.
+    for information about available operators and functions.
    </para>
 
    <example>