Re: Re: csv format for psql - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: Re: csv format for psql
Date
Msg-id CAFj8pRB4Pi-JtYZ=LkScc4XqC+mP68oCjOuFb2jQozZhokKX3g@mail.gmail.com
Whole thread Raw
In response to Re: Re: csv format for psql  ("Daniel Verite" <daniel@manitou-mail.org>)
List pgsql-hackers


2018-03-23 12:59 GMT+01:00 Daniel Verite <daniel@manitou-mail.org>:
        Pavel Stehule wrote:

> It should not be hard. All formats can has '|' like now, and csv can have a
> ',' - then if field separator is not explicit, then default field separator
> is used, else specified field separator is used.
>
> You can see my idea in attached patch

With that patch, consider this sequence:

postgres=# \pset format csv
Output format is csv.
postgres=# \pset fieldsep
Field separator is "|".
postgres=# select 1 as a,2 as b;
a,b
1,2

Here psql reports that fieldsep is "|" and right away is using something
else in the output. That doesn't look good.

yes - my patch was proof concept - nothing more.

But this can be simply solved - if we have a table of default field separator, then if separator is not explicit, then default for used format is printed.

You may object that it's fixable by tweaking the output of \pset,
\pset fieldsep, and \? variables so that it knows that the current
output format is going to use a "hidden" default separator, and
then these commands should display that value instead.
But that'd be somewhat playing whack-a-mole, as the following
sequence would now be possible, with '|' being used  as
the separator instead of the ',' reported just above:

postgres=# \pset format csv
Output format is csv.
postgres=# \pset fieldsep
Field separator is ",".
postgres=# \a
Output format is aligned.
postgres=# select 1 as a,2 as b;
 a | b
---+---
 1 | 2

I am sorry, but path that I sent was just proof concept - I didn't implement defaults for any other related formats.

I'll try to send cleaner patch tomorrow.

Regards

Pavel
 


Best regards,
--
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Backend memory dump analysis
Next
From: Pavel Stehule
Date:
Subject: Re: Re: csv format for psql