A bit more wordsmithing on the COPY CSV NULL business.

This commit is contained in:
Tom Lane 2009-09-18 20:01:13 +00:00
parent 1bd263537f
commit 726725d4d9

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/ref/copy.sgml,v 1.89 2009/09/17 21:49:15 momjian Exp $ $PostgreSQL: pgsql/doc/src/sgml/ref/copy.sgml,v 1.90 2009/09/18 20:01:13 tgl Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -183,8 +183,8 @@ COPY { <replaceable class="parameter">tablename</replaceable> [ ( <replaceable c
<listitem> <listitem>
<para> <para>
The string that represents a null value. The default is The string that represents a null value. The default is
<literal>\N</literal> (backslash-N) in text mode, and a empty <literal>\N</literal> (backslash-N) in text mode, and an unquoted empty
value with no quotes in <literal>CSV</> mode. You might prefer an string in <literal>CSV</> mode. You might prefer an
empty string even in text mode for cases where you don't want to empty string even in text mode for cases where you don't want to
distinguish nulls from empty strings. distinguish nulls from empty strings.
</para> </para>
@ -249,8 +249,7 @@ COPY { <replaceable class="parameter">tablename</replaceable> [ ( <replaceable c
In <literal>CSV</> <command>COPY TO</> mode, forces quoting to be In <literal>CSV</> <command>COPY TO</> mode, forces quoting to be
used for all non-<literal>NULL</> values in each specified column. used for all non-<literal>NULL</> values in each specified column.
<literal>NULL</> output is never quoted. If <literal>*</> is specified, <literal>NULL</> output is never quoted. If <literal>*</> is specified,
non-<literal>NULL</> values for all columns of the table will be non-<literal>NULL</> values will be quoted in all columns.
quoted.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -550,11 +549,11 @@ COPY <replaceable class="parameter">count</replaceable>
<para> <para>
The <literal>CSV</> format has no standard way to distinguish a The <literal>CSV</> format has no standard way to distinguish a
<literal>NULL</> value from an empty string. <literal>NULL</> value from an empty string.
<productname>PostgreSQL</>'s <command>COPY</> handles this by <productname>PostgreSQL</>'s <command>COPY</> handles this by quoting.
quoting. A <literal>NULL</> is output as the <literal>NULL</> A <literal>NULL</> is output as the <literal>NULL</> parameter string
parameter and is not quoted, while a non-NULL value matching the and is not quoted, while a non-<literal>NULL</> value matching the
the <literal>NULL</> parameter string is quoted. Therefore, using the default <literal>NULL</> parameter string is quoted. For example, with the
settings, a <literal>NULL</> is written as an unquoted empty default settings, a <literal>NULL</> is written as an unquoted empty
string, while an empty string data value is written with double quotes string, while an empty string data value is written with double quotes
(<literal>""</>). Reading values follows similar rules. You can (<literal>""</>). Reading values follows similar rules. You can
use <literal>FORCE NOT NULL</> to prevent <literal>NULL</> input use <literal>FORCE NOT NULL</> to prevent <literal>NULL</> input