From a9ba771b4e79abceda10f86b6a2f3e6428069549 Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Tue, 19 Oct 1999 02:54:39 +0000 Subject: [PATCH] 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. --- src/backend/access/transam/xact.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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(); -- 2.39.5