On 15.03.2017 16:38, Robert Haas wrote:
> On Wed, Mar 15, 2017 at 2:29 AM, Peter van Hardenberg <pvh@pvh.ca> wrote:
>> Ads and I were talking over breakfast about usability issues and he
>> mentioned transaction cancellation during interactive sessions as a serious
>> pain point.
>>
>> I suggest we update the default of ON_ERROR_ROLLBACK to interactive for
>> 10.0.
>>
>> The last discussion I could find about this subject was in 2011 and while
>> there was concern about setting the default to "on" (as this would tamper
>> with the expected behaviour of scripts), I don't see any identification of a
>> problem that would be caused by setting it to "interactive" by default.
> Well, then you'd get one behavior when you use psql interactively, and
> another behavior when you use it from a script. And if you used a
> client other than psql the behavior would be different from psql.
> Plus, it's kinda surprising to have a client that, by default, is
> sending secret commands to the server that you don't know about. And
> it's a backward-incompatible change against previous releases. I
> don't think any of that makes this the worst idea ever, but on balance
> I still think it's better to just recommend to people that they
> configure their .psqlrc with this setting if they want the behavior.
I'm not entirely convinced that psql should behave the same way no
matter how it is started.
Usually I put a \set ON_ERROR_STOP on the top of my scripts - something
I never do in interactive mode, just too lazy for that. Behaviour is
just different if I use psql in script mode.
Also if you paste something, you are still using it interactive - you
could as well just \i the script file.
However I agree that should be something which is announced, and maybe
changed a release later.
After further discussion, Peter will propose another solution soon.
-- Andreas 'ads' Scherbaum
German PostgreSQL User Group
European PostgreSQL User Group - Board of Directors
Volunteer Regional Contact, Germany - PostgreSQL Project