Scott Marlowe <scott.marlowe@ihs.com> writes:
> I've been thinking this over and over, and it seems to me, that the way
> SETS in transactions SHOULD work is that they are all rolled back, period,
> whether the transaction successfully completes OR NOT.
This would make it impossible for SET to have any persistent effect
at all. (Every SQL command is inside a transaction --- an
implicitly-established one if necesary, but there is one.)
It might well be useful to have some kind of LOCAL SET command that
behaves the way you describe (effects good only for current transaction
block), but I don't think it follows that that should be the only
behavior available.
What would you expect if LOCAL SET were followed by SET on the same
variable in the same transaction? Presumably the LOCAL SET would then
be nullified; or is this an error condition?
regards, tom lane