Tom Lane wrote: > Andrew Dunstan <[EMAIL PROTECTED]> writes: > > Could we maybe have some flavor of ROLLBACK that doesn't issue a warning > > if no transaction is in progress? There is precedent for this sort of > > facility - DROP ... IF EXISTS. > > Something that would actually be doable for 8.3 would be to downgrade > this particular WARNING to a NOTICE. A DBA who hasn't got > log_min_messages set higher than NOTICE hasn't really got a lot of room > to whine about bulky logs.
I have developed the attached patch to implement this. I assume we want to change ABORT outside a transaction from WARNING to NOTICE, but not COMMIT. -- Bruce Momjian <[EMAIL PROTECTED]> http://momjian.us EnterpriseDB http://postgres.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
Index: src/backend/access/transam/xact.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/transam/xact.c,v retrieving revision 1.251 diff -c -c -r1.251 xact.c *** src/backend/access/transam/xact.c 11 Sep 2007 03:28:05 -0000 1.251 --- src/backend/access/transam/xact.c 9 Nov 2007 02:45:30 -0000 *************** *** 3025,3031 **** * default state. */ case TBLOCK_STARTED: ! ereport(WARNING, (errcode(ERRCODE_NO_ACTIVE_SQL_TRANSACTION), errmsg("there is no transaction in progress"))); s->blockState = TBLOCK_ABORT_PENDING; --- 3025,3031 ---- * default state. */ case TBLOCK_STARTED: ! ereport(NOTICE, (errcode(ERRCODE_NO_ACTIVE_SQL_TRANSACTION), errmsg("there is no transaction in progress"))); s->blockState = TBLOCK_ABORT_PENDING; Index: src/test/regress/expected/errors.out =================================================================== RCS file: /cvsroot/pgsql/src/test/regress/expected/errors.out,v retrieving revision 1.52 diff -c -c -r1.52 errors.out *** src/test/regress/expected/errors.out 15 Apr 2006 17:45:46 -0000 1.52 --- src/test/regress/expected/errors.out 9 Nov 2007 02:45:31 -0000 *************** *** 116,122 **** -- not in a xact abort; ! WARNING: there is no transaction in progress -- not in a xact end; WARNING: there is no transaction in progress --- 116,122 ---- -- not in a xact abort; ! NOTICE: there is no transaction in progress -- not in a xact end; WARNING: there is no transaction in progress
---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq