From: Hiroshi Inoue Date: Tue, 19 Oct 1999 02:54:39 +0000 (+0000) Subject: Not to change pg_log status after "commit". X-Git-Tag: REL6_5_3~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a9ba771b4e79abceda10f86b6a2f3e6428069549;p=thirdparty%2Fpostgresql.git Not to change pg_log status after "commit". This will happen when elog(ERROR)(elog(FATAL) also in 7.0) is called in vacuum after the internal commit. --- diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index a4e7348c538..9289b6ad2c4 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.42.2.3 1999/09/09 16:29:22 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.42.2.4 1999/10/19 02:54:39 inoue Exp $ * * NOTES * Transaction aborts can now occur two ways: @@ -733,9 +733,10 @@ RecordTransactionAbort() /* * Have the transaction access methods record the status of * this transaction id in the pg_log relation. We skip it - * if no one shared buffer was changed by this transaction. + * if no one shared buffer was changed by this transaction + * or this transaction has been committed already. */ - if (SharedBufferChanged) + if (SharedBufferChanged && !TransactionIdDidCommit(xid)) TransactionIdAbort(xid); ResetBufferPool();