]> granicus.if.org Git - postgresql/commitdiff
CSV NULL Documentation
authorBruce Momjian <bruce@momjian.us>
Thu, 17 Sep 2009 21:49:15 +0000 (21:49 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 17 Sep 2009 21:49:15 +0000 (21:49 +0000)
Update docs to clearly explain NULL value matching behavior, per Andrew.

Backpatch to 8.4.X.

doc/src/sgml/ref/copy.sgml

index ff91ee2d9f75f191bbb9904942d80df889e58ee3..79ed7c204e3e0710729dcfe02afee73a41506b2c 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/copy.sgml,v 1.88 2009/09/17 21:13:01 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/copy.sgml,v 1.89 2009/09/17 21:49:15 momjian Exp $
 PostgreSQL documentation
 -->
 
@@ -550,10 +550,13 @@ COPY <replaceable class="parameter">count</replaceable>
    <para>
     The <literal>CSV</> format has no standard way to distinguish a
     <literal>NULL</> value from an empty string.
-    <productname>PostgreSQL</>'s <command>COPY</> handles this using
-    quoting. A <literal>NULL</> is output as an empty string without
-    quotes, while an empty string data value is double-quoted
-    (<literal>""</>).  Reading values follows similar rules. You can
+    <productname>PostgreSQL</>'s <command>COPY</> handles this by
+    quoting. A <literal>NULL</> is output as the <literal>NULL</>
+    parameter and is not quoted, while a non-NULL value matching the
+    the <literal>NULL</> parameter string is quoted. Therefore, using the default
+    settings, a <literal>NULL</> is written as an unquoted empty
+    string, while an empty string data value is written with double quotes
+    (<literal>""</>). Reading values follows similar rules. You can
     use <literal>FORCE NOT NULL</> to prevent <literal>NULL</> input
     comparisons for specific columns.
    </para>