Re: proposal: multiple psql option -c

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>, dinesh kumar <dineshkumar02(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: proposal: multiple psql option -c
Date: 2015-08-26 13:15:34
Message-ID: CAFj8pRAoWrvp132kA0fLtGmtz9D0KTpT+hKpfncwRcjHkrHjcg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi

2015-08-26 13:12 GMT+02:00 Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>:

> Hi
>
> 2015-07-29 21:05 GMT+02:00 Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>:
>
>> Hi
>>
>> here is proof concept patch
>>
>> It should be cleaned, but it demonstrates a work well
>>
>> [pavel(at)localhost psql]$ ./psql -C 'select 10 x; select 20 y;' -C "\l"
>> postgres
>> x
>> ----
>> 10
>> (1 row)
>>
>> y
>> ----
>> 20
>> (1 row)
>>
>> List of databases
>> Name | Owner | Encoding | Collate | Ctype | Access
>> privileges
>>
>> -----------+----------+----------+-------------+-------------+-----------------------
>> postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
>> template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
>> =c/postgres +
>> | | | | |
>> postgres=CTc/postgres
>> template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
>> =c/postgres +
>> | | | | |
>> postgres=CTc/postgres
>> (3 rows)
>>
>>
>> 2015-07-28 18:46 GMT+02:00 Andrew Dunstan <andrew(at)dunslane(dot)net>:
>>
>>>
>>> On 07/28/2015 11:52 AM, Pavel Stehule wrote:
>>>
>>>>
>>>>
>>>> 2015-07-28 15:16 GMT+02:00 Andrew Dunstan <andrew(at)dunslane(dot)net <mailto:
>>>> andrew(at)dunslane(dot)net>>:
>>>>
>>>>
>>>> On 07/28/2015 12:08 AM, Pavel Stehule wrote:
>>>>
>>>>
>>>>
>>>> 2015-07-28 5:24 GMT+02:00 Pavel Stehule
>>>> <pavel(dot)stehule(at)gmail(dot)com <mailto:pavel(dot)stehule(at)gmail(dot)com>
>>>> <mailto:pavel(dot)stehule(at)gmail(dot)com
>>>> <mailto:pavel(dot)stehule(at)gmail(dot)com>>>:
>>>>
>>>>
>>>>
>>>> 2015-07-27 21:57 GMT+02:00 Andrew Dunstan
>>>> <andrew(at)dunslane(dot)net <mailto:andrew(at)dunslane(dot)net>
>>>> <mailto:andrew(at)dunslane(dot)net <mailto:andrew(at)dunslane(dot)net>>>:
>>>>
>>>>
>>>>
>>>> On 07/27/2015 02:53 PM, Pavel Stehule wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> I am trying to run parallel execution
>>>>
>>>> psql -At -c "select datname from pg_database"
>>>> postgres |
>>>> xargs -n 1 -P 3 psql -c "select current_database()"
>>>>
>>>>
>>>>
>>>>
>>>> I don't think it's going to be a hugely important
>>>> feature, but
>>>> I don't see a problem with creating a new option (-C
>>>> seems
>>>> fine) which would have the same effect as if the
>>>> arguments
>>>> were contatenated into a file which is then used with
>>>> -f. IIRC
>>>> -c has some special characteristics which means it's
>>>> probably
>>>> best not to try to extend it for this feature.
>>>>
>>>>
>>>> ok, I'll try to write patch.
>>>>
>>>>
>>>> I have a question. Can be -C option multiple?
>>>>
>>>> The SQL is without problem, but what about \x command?
>>>>
>>>> postgres=# \dt \dn select 10;
>>>> No relations found.
>>>> List of schemas
>>>> ┌──────┬───────┐
>>>> │ Name │ Owner │
>>>> ╞══════╪═══════╡
>>>> └──────┴───────┘
>>>> (0 rows)
>>>>
>>>> \dn: extra argument "10;" ignored
>>>>
>>>>
>>>>
>>>> I don't understand the question.
>>>>
>>>> You should include one sql or psql command per -C option, ISTM. e.g.
>>>>
>>>> psql -C '\dt' -C '\dn' -C 'select 10;'
>>>>
>>>>
>>>> Isn't that what we're talking about with this whole proposal?
>>>>
>>>>
>>>>
>>>> I am searching some agreement, how to solve a current "-c" limits. I am
>>>> 100% for >>> psql -C '\dt' -C '\dn' -C 'select 10;' <<<
>>>>
>>>>
>>>>
>>> I think you're probably best off leaving -c alone. If there are issues
>>> to be solved for -c they should be handled separately from the feature we
>>> agree on.
>>>
>>> cheers
>>>
>>> andrew
>>>
>>>
>>>
>>>
>>
> here is finished patch - cleaned, tested - the significant change is using
> -g --group-command instead "-C"
>
> [pavel(at)localhost psql]$ ./psql postgres -g "select 10; select 20" -g
> "select 30"
> ?column?
> ----------
> 10
> (1 row)
>
> ?column?
> ----------
> 20
> (1 row)
>
> ?column?
> ----------
> 30
> (1 row)
>
> Regards
>
>
with -1 option support

> Pavel
>

Attachment Content-Type Size
psql-group-command-02.patch text/x-patch 9.3 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephen Frost 2015-08-26 13:33:08 Re: exposing pg_controldata and pg_config as functions
Previous Message Pavel Stehule 2015-08-26 12:18:59 strange test in psql:startup.c