aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/transam/xact.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>1999-08-08 20:12:52 +0000
committerTom Lane <tgl@sss.pgh.pa.us>1999-08-08 20:12:52 +0000
commit4488b69b4cd388cb557ced8165df8eeb984db73a (patch)
treeb9a3d566c24d8788ba6c61a9ca7d029198e15963 /src/backend/access/transam/xact.c
parentfb491a5854f6883f38bffac0591c754b475695af (diff)
downloadpostgresql-4488b69b4cd388cb557ced8165df8eeb984db73a.tar.gz
postgresql-4488b69b4cd388cb557ced8165df8eeb984db73a.zip
Fix nbtree's failure to clear BTScans list during xact abort.
Also, move responsibility for calling vc_abort into main xact.c list of things-to-call-at-abort. What in the world was it doing down inside of TransactionIdAbort()?
Diffstat (limited to 'src/backend/access/transam/xact.c')
-rw-r--r--src/backend/access/transam/xact.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 53f38d79962..04711a33bb4 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.46 1999/07/16 04:58:33 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.47 1999/08/08 20:12:52 tgl Exp $
*
* NOTES
* Transaction aborts can now occur two ways:
@@ -144,9 +144,11 @@
*/
#include "postgres.h"
+#include "access/nbtree.h"
#include "catalog/heap.h"
#include "commands/async.h"
#include "commands/sequence.h"
+#include "commands/vacuum.h"
#include "libpq/be-fsstubs.h"
#include "storage/proc.h"
#include "utils/inval.h"
@@ -952,6 +954,7 @@ CommitTransaction()
}
RelationPurgeLocalRelation(true);
+ AtEOXact_nbtree();
AtCommit_Cache();
AtCommit_Locks();
AtCommit_Memory();
@@ -1013,9 +1016,12 @@ AbortTransaction()
AtAbort_Notify();
CloseSequences();
AtEOXact_portals();
+ if (VacuumRunning)
+ vc_abort();
RecordTransactionAbort();
RelationPurgeLocalRelation(false);
DestroyNoNameRels();
+ AtEOXact_nbtree();
AtAbort_Cache();
AtAbort_Locks();
AtAbort_Memory();