Suggestion: Issue warning when calling SET TRANSACTION outside transaction block - Mailing list pgsql-hackers

From Morten Hustveit
Subject Suggestion: Issue warning when calling SET TRANSACTION outside transaction block
Date
Msg-id CAJajUVQgMC4VQpVY=upnwyearwNqLpBWcWrmeX6vjuf5O2rr=w@mail.gmail.com
Whole thread Raw
Responses Re: Suggestion: Issue warning when calling SET TRANSACTION outside transaction block
List pgsql-hackers
Hi!

Calling "SET TRANSACTION ISOLATION LEVEL ..." outside a transaction
block has no effect.  This is unlike "LOCK ..." and "DECLARE foo
CURSOR FOR ...", which both raise an error.  This is also unlike
MySQL, where such a statement will affect the next transaction
performed.  There's some risk of data corruption, as a user might
assume he's working on a snapshot, while in fact he's not.

I suggest issuing a warning, notice or error message when "SET
TRANSACTION ..." is called outside a transaction block, possibly
directing the user to the "SET SESSION CHARACTERISTICS AS TRANSACTION
..." syntax.

I'm not familiar with the PostgreSQL source code, but it seems this
would have to be added to check_XactIsoLevel() or by calling
RequireTransactionChain() at some appropriate location.



pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: Performance Improvement by reducing WAL for Update Operation
Next
From: Zoltán Böszörményi
Date:
Subject: Re: Strange Windows problem, lock_timeout test request