diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 5c07795c8a90ec5cbafaad7c1d0df7538b998e60..32380eeb37b3c6a8abcf2e22b40f7560a0d2d5a7 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.163 2004/08/23 23:22:44 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.164 2004/08/28 18:18:03 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -4922,9 +4922,11 @@ CreateCheckPoint(bool shutdown, bool force) * Truncate pg_subtrans if possible. We can throw away all data before * the oldest XMIN of any running transaction. No future transaction will * attempt to reference any pg_subtrans entry older than that (see Asserts - * in subtrans.c). + * in subtrans.c). During recovery, though, we mustn't do this because + * StartupSUBTRANS hasn't been called yet. */ - TruncateSUBTRANS(GetOldestXmin(true)); + if (!InRecovery) + TruncateSUBTRANS(GetOldestXmin(true)); LWLockRelease(CheckpointLock); }