Re: VIP: new format for psql - shell - simple using psql in shell - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: VIP: new format for psql - shell - simple using psql in shell
Date
Msg-id CAFj8pRCkLh_kV13ARaEySz7uX+41uRNYzdRDSMArWe-c4HxJxA@mail.gmail.com
Whole thread Raw
In response to Re: VIP: new format for psql - shell - simple using psql in shell  (Bruce Momjian <bruce@momjian.us>)
Responses Re: VIP: new format for psql - shell - simple using psql in shell
List pgsql-hackers
2012/5/26 Bruce Momjian <bruce@momjian.us>:
> On Sat, May 26, 2012 at 12:43:40PM -0400, Tom Lane wrote:
>> Bruce Momjian <bruce@momjian.us> writes:
>> > On Sat, May 26, 2012 at 05:39:23PM +0200, Pavel Stehule wrote:
>> >> I proposed new psql's format "shell". This format is optimized for
>> >> processing returned result in shell:
>>
>> > I am unclear exactly how this relates to shells.
>>
>> What I'm unclear on is why we'd want to encourage that style of
>> programming.  The most charitable prediction of performance is that it
>> would suck --- not only do you have all the inefficiencies inherent in
>> row-by-row result processing with a shell script, but you're forcing a
>> separate database connection for each query.  And I don't actually see
>> where it would be especially convenient to use, compared to say perl
>> or python or other scripting languages.  I'd rather see us worrying
>> about the convenience of cases like
>
> Wouldn't you just us unaligned mode for this, and set IFS  to '|'?
>
>        $ psql --no-align --tuples-only -c 'SELECT 1,2' test
>        1|2
>
>        $ export IFS="|"
>        $ IFS='|' sql --no-align --tuples-only -c 'SELECT 1,2' test |
>        while read x y; do echo $x; echo $y; done
>        1
>        2
>
> Are you worried about pipes in data?  Does you idea fix this?

I can do use IFS, but it is not easy when you would to work with
multicolumn tables - because you have to two IFS. Processing single
column tables is simple now - difference is in multicolumn tables.

My idea is secure to separator - because separator is just space and
new line and these symbols are escaped.

Regards

Pavel

>
> --
>  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
>  EnterpriseDB                             http://enterprisedb.com
>
>  + It's impossible for everything to be true. +


pgsql-hackers by date:

Previous
From: Daniel Farina
Date:
Subject: Re: --disable-shared is entirely broken these days
Next
From: Pavel Stehule
Date:
Subject: Re: VIP: new format for psql - shell - simple using psql in shell