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 11:12:55
Message-ID: CAFj8pRDjejmM8iQxHWTp96Nu6WQb+ru1yEOJWLNKayZjmQXc_Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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

Pavel

Attachment Content-Type Size
psql-group-command-01.patch text/x-patch 6.6 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2015-08-26 11:15:36 Re: proposal: multiple psql option -c
Previous Message Simon Riggs 2015-08-26 10:48:13 Re: Reducing ClogControlLock contention