Bruce Momjian <pgman@candle.pha.pa.us> writes:
> No problem, it is just that rollbacks when you are not in a transaction
> cause a log error message.
I don't see any difference in the behavior: you get a notice either way.
regression=# commit;
NOTICE: COMMIT: no transaction in progress
COMMIT
regression=# rollback;
NOTICE: ROLLBACK: no transaction in progress
ROLLBACK
regression=#
My recommendation would generally be to do a ROLLBACK not a COMMIT, on
the grounds that if the previous user failed to complete his transaction
you probably want to abort it, not assume that it's safe to commit.
However, this safety-first approach might be unworkable if you have a
large body of existing code that all assumes it needn't issue COMMIT
explicitly.
regards, tom lane