diff options
Diffstat (limited to 'src/backend/access/transam/xlog.c')
-rw-r--r-- | src/backend/access/transam/xlog.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 655563a3d84..3dc00499bfb 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.268 2007/04/30 21:01:52 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.269 2007/05/20 21:08:19 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -784,6 +784,19 @@ begin:; } /* + * If we backed up any full blocks and online backup is not in progress, + * mark the backup blocks as removable. This allows the WAL archiver to + * know whether it is safe to compress archived WAL data by transforming + * full-block records into the non-full-block format. + * + * Note: we could just set the flag whenever !forcePageWrites, but + * defining it like this leaves the info bit free for some potential + * other use in records without any backup blocks. + */ + if ((info & XLR_BKP_BLOCK_MASK) && !Insert->forcePageWrites) + info |= XLR_BKP_REMOVABLE; + + /* * If there isn't enough space on the current XLOG page for a record * header, advance to the next page (leaving the unused space as zeroes). */ @@ -5868,6 +5881,10 @@ xlog_redo(XLogRecPtr lsn, XLogRecord *record) RecoveryRestartPoint(&checkPoint); } + else if (info == XLOG_NOOP) + { + /* nothing to do here */ + } else if (info == XLOG_SWITCH) { /* nothing to do here */ @@ -5894,6 +5911,10 @@ xlog_desc(StringInfo buf, uint8 xl_info, char *rec) checkpoint->nextMultiOffset, (info == XLOG_CHECKPOINT_SHUTDOWN) ? "shutdown" : "online"); } + else if (info == XLOG_NOOP) + { + appendStringInfo(buf, "xlog no-op"); + } else if (info == XLOG_NEXTOID) { Oid nextOid; |