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 CAFj8pRDFW6jXPWyL2hLB-cE3Oab1AUZ7=bpNpRkoJ4nB_VDk6w@mail.gmail.com
Whole thread Raw
In response to Re: Danger of automatic connection reset in psql  (Oleksandr Shulgin <oleksandr.shulgin@zalando.de>)
Responses Re: Danger of automatic connection reset in psql
List pgsql-hackers


2016-11-22 13:02 GMT+01:00 Oleksandr Shulgin <oleksandr.shulgin@zalando.de>:
On Tue, Nov 22, 2016 at 5:28 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote:

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.

That makes sense to me.

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.

Well, if you're running a script it should not be affected as long as default value for this new variable is "interactive" or "off" (and you didn't override it in psqlrc).  If you really want to get a "reconnect even from the script" type of behavior, then you'll have to use -v or set the variable from inside the script itself to "on".

ok

Pavel

--
Alex


pgsql-hackers by date:

Previous
From: Oleksandr Shulgin
Date:
Subject: Re: Danger of automatic connection reset in psql
Next
From: Mithun Cy
Date:
Subject: Re: Patch: Implement failover on libpq connect level.