Re: survey: psql syntax errors abort my transactions
От | Adrian Klaver |
---|---|
Тема | Re: survey: psql syntax errors abort my transactions |
Дата | |
Msg-id | dbda16c8-f551-649d-2822-eb76c2fcf1da@aklaver.com обсуждение исходный текст |
Ответ на | survey: psql syntax errors abort my transactions (Jeremy Schneider <schnjere@amazon.com>) |
Ответы |
Re: survey: psql syntax errors abort my transactions
|
Список | pgsql-general |
On 7/2/20 8:54 AM, Jeremy Schneider wrote: > Maybe it's just me, but I'm wondering if it's worth changing the default > behavior of psql so it doesn't abort transactions in interactive mode > when I mistakenly mis-spell "select" or something silly like that. This > is of course easily remedied in my psqlrc file by adding "\set > ON_ERROR_ROLLBACK interactive". I don't know whether there are > equivalent settings for pgAdmin and Toad and whatever other tools people > are using for their interactive SQL sessions. But I do know that for all > the new people coming to PostgreSQL right now (including lots at my > company), none of them are going to know about this setting and > personally I think the default is user-unfriendly. > > https://www.postgresql.org/docs/current/app-psql.html#id-1.9.4.18.8.5.2.9.17.1.2 > > A couple years back, some hackers discussed changing the default, and it > was decided against (IIUC) because of concerns about broken scripts > suddenly causing damage rather than aborting out. (About which... I > think if a script is sending broken SQL, then it might not be checking > error return values either and will likely keep running even after > PostgreSQL ignores a few SQL statements after the error in the current > session...) > > https://www.postgresql.org/message-id/flat/CABTbUpiAOKZ405uArt8cJFtC72RhzthmvWETQK_6Qw0Ad-HquQ%40mail.gmail.com > > This thread on hackers actually seemed kindof short to me. Not nearly > enough bike-shedding to call it a closed case. It also seems to me that > the community has made significant changes across new major versions in > the past, and this idea here might not be entirely off the table quite yet. > > So... > > Survey for the user community here on the pgsql-general list: it would > be great if lots of people could chime in by answering two questions > about your very own production environment: > > question 1) are you worried about scripts in your production environment > where damage could be caused by a different default in a future new > major version of postgresql? (not aborting transactions in interactive > mode when syntax errors occur) > > question 2) do you think the increased user-friendliness of changing > this default behavior would be worthwhile for specific users in your > organization who use postgresql? (including both yourself and others > you know of) I would say just add a message to the ERROR that points out ON_ERROR_ROLLBACK = 'on' is available. For instance: test(5432)=# begin ; BEGIN test(5432)=# select 1/0; ERROR: division by zero test(5432)=# select 1; ERROR: current transaction is aborted, commands ignored until end of transaction block New part of message HINT: \set ON_ERROR_ROLLBACK on to rollback on error. > > As someone working at a large company with an aweful lot of PostgreSQL, > thinking of the internal production systems I'm aware of, I'd personally > vote pretty strongly in favor of changing the default. > > -Jeremy > > > -- > Jeremy Schneider > Database Engineer > Amazon Web Services > -- Adrian Klaver adrian.klaver@aklaver.com
В списке pgsql-general по дате отправления:
Предыдущее
От: "David G. Johnston"Дата:
Сообщение: Re: survey: psql syntax errors abort my transactions
Следующее
От: Jeremy SchneiderДата:
Сообщение: Re: survey: psql syntax errors abort my transactions