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

From: Arnaud Lesauvage <arnaud(dot)listes(at)codata(dot)eu>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: No quotes in output of "psql \copy CSV"
Date: 2010-06-29 12:58:11
Message-ID: 4C29EDE3.9080000@codata.eu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Le 29/06/2010 14:40, Sam Mason a écrit :
> 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;

Oh indeed !
As a matter of fact, I don't even need to force the output to be quoted.
I just expected it to be so I thought there was an error.
But after trying with a string containing a comma, I do indeed so that
the string is quoted.

Thanks a lot Sam.

Regards
--
Arnaud Lesauvage

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Igor Neyman 2010-06-29 13:21:48 Re: postgres user password: Log on failure
Previous Message Scott Marlowe 2010-06-29 12:49:28 Re: alter table schema, default sequences stay the same