Re: No quotes in output of "psql \copy CSV"

From: Sam Mason <sam(at)samason(dot)me(dot)uk>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: No quotes in output of "psql \copy CSV"
Date: 2010-06-29 12:40:39
Message-ID: 20100629124039.GC7584@samason.me.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Scott Marlowe 2010-06-29 12:49:28 Re: alter table schema, default sequences stay the same
Previous Message Arnaud Lesauvage 2010-06-29 12:24:00 No quotes in output of "psql \copy CSV"