Re: proposal \gcsv - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: proposal \gcsv
Date
Msg-id CAFj8pRBEx7JsRWmzZFszMt=p8LZUddBwfgS6vditce17O-iEjg@mail.gmail.com
Whole thread Raw
In response to Re: proposal \gcsv  (Erik Rijkers <er@xs4all.nl>)
List pgsql-hackers


čt 26. 3. 2020 v 19:41 odesílatel Erik Rijkers <er@xs4all.nl> napsal:
On 2020-03-26 18:49, Pavel Stehule wrote:
> Hi
>
> [psql-gfmt.patch]

This seems useful and works well; I haven't found any errors. Well done.

However, I have a suggestion that is perhaps slightly outside of this
patch but functionally so close that maybe we can discuss it here.

When you try to get a tab-separated output via this new  \gfmt  in a
one-liner
you're still forced to use
    \pset csv_fieldsep '\t'

Would it be possible to do one of the following to enable a more compact
one-liner syntax:

1. add an option:
     \gfmt tsv   --> use a TAB instead of a comma in the csv

or

2. let the psql command-line option '--csv' honour the value given by 
psql -F/--field-separator (it does not do so now)

or

3. add an psql -commandline option:
     --csv-field-separator

Any of these three (I'd prefer the first) would make producing a tsv in
shell one-liners with psql easier/more compact.

I understand to your proposal, but it's hard to do inside \gfmt command

1. a syntax of psql backslash commands doesn't support named parameters, and \gfmt (like some others \gx) statements has optional parameter already. There was a long discussion (without success) about possible parametrizations of psql commands.

2. if I understand to tsv format, then it is not CSV format with different separator.

the most correct design is introduction new output format "tsv".This format can produce 100% valid tsv.

Regards

Pavel



Thanks,


Erik Rijkers











pgsql-hackers by date:

Previous
From: David Steele
Date:
Subject: Re: backup manifests
Next
From: Mike Palmiotto
Date:
Subject: Re: some AppVeyor files