]> granicus.if.org Git - postgresql/commitdiff
A bit more wordsmithing on the COPY CSV NULL business.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 18 Sep 2009 20:01:18 +0000 (20:01 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 18 Sep 2009 20:01:18 +0000 (20:01 +0000)
doc/src/sgml/ref/copy.sgml

index 23a3ef0b9b68151b9ff7a43fc4d7fc38e7acabba..e4513a3567cf9236b24a7bdb231d1b6f990d3d43 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/copy.sgml,v 1.85.2.2 2009/09/17 21:49:22 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/copy.sgml,v 1.85.2.3 2009/09/18 20:01:18 tgl Exp $
 PostgreSQL documentation
 -->
 
@@ -183,8 +183,8 @@ COPY { <replaceable class="parameter">tablename</replaceable> [ ( <replaceable c
     <listitem>
      <para>
       The string that represents a null value. The default is
-      <literal>\N</literal> (backslash-N) in text mode, and a empty
-      value with no quotes in <literal>CSV</> mode. You might prefer an
+      <literal>\N</literal> (backslash-N) in text mode, and an unquoted empty
+      string in <literal>CSV</> mode. You might prefer an
       empty string even in text mode for cases where you don't want to
       distinguish nulls from empty strings.
      </para>
@@ -298,6 +298,10 @@ COPY <replaceable class="parameter">count</replaceable>
     somewhat faster than the normal text mode, but a binary-format
     file is less portable across machine architectures and
     <productname>PostgreSQL</productname> versions.
+    Also, the binary format is very data type specific; for example
+    it will not work to output binary data from a <type>smallint</> column
+    and read it into an <type>integer</> column, even though that would work
+    fine in text format.
    </para>
 
    <para>
@@ -544,11 +548,11 @@ 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 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
+    <productname>PostgreSQL</>'s <command>COPY</> handles this by quoting.
+    A <literal>NULL</> is output as the <literal>NULL</> parameter string
+    and is not quoted, while a non-<literal>NULL</> value matching the
+    <literal>NULL</> parameter string is quoted.  For example, with 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