> 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.
Sorry, I should have said do a "BEGIN;COMMIT;". That only generates an
error message if a transaction was left open, and it commits the
left-open transaction.
We can add a SILENT keyword to COMMIT/ROLLBACK if people really want it.
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026