Re: Danger of automatic connection reset in psql - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: Danger of automatic connection reset in psql
Date
Msg-id CAFj8pRCRf9WKdLrjFugesq3wiy7YrmL=eLU1nJ=0jt1qjNuWew@mail.gmail.com
Whole thread Raw
In response to Re: Danger of automatic connection reset in psql  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Danger of automatic connection reset in psql
List pgsql-hackers


2016-11-22 3:46 GMT+01:00 Robert Haas <robertmhaas@gmail.com>:
On Mon, Nov 21, 2016 at 4:55 AM, Oleksandr Shulgin
<oleksandr.shulgin@zalando.de> wrote:
> On Tue, Nov 15, 2016 at 4:10 PM, Jim Nasby <Jim.Nasby@bluetreble.com> wrote:
>>
>> On 11/14/16 5:41 AM, Oleksandr Shulgin wrote:
>>>
>>> Automatic connection reset is a nice feature for server development,
>>> IMO.  Is it really useful for anything else is a good question.
>>
>>
>> I use it all the time for application development; my rebuild script will
>> forcibly kick everyone out to re-create the database. I put that in because
>> I invariably end up with a random psql sitting somewhere that I don't want
>> to track down.
>>
>> What currently stinks though is if the connection is dead and the next
>> command I run is a \i, psql just dies instead of re-connecting. It'd be nice
>> if before reading the script it checked connection status and attempted a
>> reconnect.
>>
>>> At least an option to control that behavior seems like a good idea,
>>> maybe even set it to 'no reconnect' by default, so that people who
>>> really use it can make conscious choice about enabling it in their
>>> .psqlrc or elsewhere.
>>
>>
>> +1, I don't think it needs to be the default.
>
>
> So if we go in this direction, should the option be specified from command
> line or available via psqlrc (or both?)  I think both make sense.
>
> What should be the option and control variable names?  Something like:
> --reconnect and RECONNECT?  Should we allow reconnect in non-interactive
> mode?  I have no use case for that, but it might be different for others.
> If non-interactive is not supported then it could be a simple boolean
> variable, otherwise we might want something like a tri-state: on / off /
> interactive (the last one being the default).

I think it should just be another psql special variable, like
AUTOCOMMIT or VERBOSITY.  If the user wants to set it on the command
line, they can just use -v.  We don't need a separate, dedicated
option for this, I think.

In this case depends on a default. For almost all scripts the sensible value is "without reconnect". It be unfriendly to use this setting via -v variable.

Regards

Pavel
 

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

pgsql-hackers by date:

Previous
From: Tomas Vondra
Date:
Subject: Re: WIP: multivariate statistics / proof of concept
Next
From: Craig Ringer
Date:
Subject: Re: Re: Use procsignal_sigusr1_handler and RecoveryConflictInterrupt() from walsender?