The following bug has been logged on the website:
Bug reference: 7709
Logged by: Timothy Garnett
Email address: tgarnett@panjiva.com
PostgreSQL version: 9.1.2
Operating system: Ubuntu 10.04.4 LTS
Description: =
psql \copy terminates at \. by itself in a line even if the format is csv
and the \. is inside a quoted region. This means that some values can't be
round-tripped by psql \copy. Tested and the native postgresql COPY handles
this case correctly.
Ex:
=3D# CREATE TEMPORARY TABLE test_table AS (SELECT 1 AS id, '
\.
'::text AS data, 2 AS num_data);
=3D# \copy test_table to '/tmp/dummy.csv' csv
=3D# TRUNCATE TABLE test_table;
=3D# \copy test_table from '/tmp/dummy.csv' csv
ERROR: unterminated CSV quoted field
CONTEXT: COPY test_table, line 1: "1,"
"
(postgresql COPY can handle this case though:
=3D# COPY test_table TO '/tmp/TEST_DATA.csv' WITH (FORMAT CSV);
=3D# TRUNCATE TABLE test_table;
=3D# COPY test_table FROM '/tmp/TEST_DATA.csv' WITH (FORMAT CSV);
works fine)