Re: No quotes in output of "psql \copy CSV" - Mailing list pgsql-general

From Sam Mason
Subject Re: No quotes in output of "psql \copy CSV"
Date
Msg-id 20100629124039.GC7584@samason.me.uk
Whole thread Raw
In response to No quotes in output of "psql \copy CSV"  (Arnaud Lesauvage <arnaud.listes@codata.eu>)
Responses Re: No quotes in output of "psql \copy CSV"  (Arnaud Lesauvage <arnaud.listes@codata.eu>)
List pgsql-general
On Tue, Jun 29, 2010 at 02:24:00PM +0200, Arnaud Lesauvage wrote:
> I'd like to generate CSV files from the output of a query.
> I can't get the srings in the output to be quoted though. I thought that
> this was the default for CSV, and even adding the "QUOTE" parameter does
> not help :
>
> postgres=# \copy (SELECT 1, 'test', 'foo', 'bar', TRUE, FALSE) TO stdout
> CSV QUOTE '"' DELIMITER ','
> 1,test,foo,bar,t,f
>
> What am I missing here ?

By default values are only quoted when they need to be, i.e. if they
contain a quote, comma and a few other characters.  This is very common
behavior and all the programs I've tried to use the resulting files with
have been fine with it.

If you really want all values to be quoted you can include the "FORCE
QUOTE" option, i.e:

  copy (SELECT 1 AS a, 'a' AS b) TO stdout WITH CSV HEADER FORCE QUOTE a,b;

--
  Sam  http://samason.me.uk/

pgsql-general by date:

Previous
From: Arnaud Lesauvage
Date:
Subject: No quotes in output of "psql \copy CSV"
Next
From: Scott Marlowe
Date:
Subject: Re: alter table schema, default sequences stay the same