On Mon, 24 Feb 2020 at 17:59, Merlin Moncure <mmonc...@gmail.com> wrote:
> On Mon, Feb 24, 2020 at 4:06 PM Vladimir Sitnikov > <sitnikov.vladi...@gmail.com> wrote: > > > > Merlin>My biggest sense of alarm with the proposed change is that it > could > > Merlin>leave applications in a state where the transaction is hanging > there > > > > How come? > > The spec says commit ends the transaction. > > Can you please clarify where the proposed change leaves a hanging > transaction? > > > > Just in case, the proposed change is as follows: > > > > postgres=# begin; > > BEGIN > > postgres=# aslkdfasdf; > > ERROR: syntax error at or near "aslkdfasdf" > > LINE 1: aslkdfasdf; > > ^ > > postgres=# commit; > > ROLLBACK <-- this should be replaced with "ERROR: can't commit the > transaction because ..." > > postgres=# commit; > > WARNING: there is no transaction in progress <-- this should be as it > is currently. Even if commit throws an error, the transaction should be > terminated. > > COMMIT > > Ok, you're right; I missed the point in that it's not nearly as bad as > I thought you were suggesting (to treat commit as bad statement) but > the transaction would still terminate. Still, this is very sensitive > stuff, do you think most common connection poolers would continue to > work after making this change? > Don't see why not. All that happens is that an error message is emitted by the server on commit instead of silently rolling back Dave Cramer https://www.postgres.rocks