From 95ef7cd40da69feff0ab1f2e4964949e6fb15383 Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Fri, 13 Aug 2010 15:42:21 +0000 Subject: [PATCH] Make RecordTransactionCommit() respect wal_level. Since the only purpose of WAL-loggin SharedInvalidationMessages is to support Hot Standby operation, they needn't be included when wal_level < hot_standby. Back-patch to 9.0. Review by Heikki Linnakanagas and Fujii Masao. --- src/backend/access/transam/xact.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 37764891d7..0491d2c8d9 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.296 2010/08/12 23:24:53 rhaas Exp $ + * $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.297 2010/08/13 15:42:21 rhaas Exp $ * *------------------------------------------------------------------------- */ @@ -915,15 +915,16 @@ RecordTransactionCommit(void) bool haveNonTemp; int nchildren; TransactionId *children; - int nmsgs; + int nmsgs = 0; SharedInvalidationMessage *invalMessages = NULL; - bool RelcacheInitFileInval; + bool RelcacheInitFileInval = false; /* Get data needed for commit record */ nrels = smgrGetPendingDeletes(true, &rels, &haveNonTemp); nchildren = xactGetCommittedChildren(&children); - nmsgs = xactGetCommittedInvalidationMessages(&invalMessages, - &RelcacheInitFileInval); + if (XLogStandbyInfoActive()) + nmsgs = xactGetCommittedInvalidationMessages(&invalMessages, + &RelcacheInitFileInval); /* * If we haven't been assigned an XID yet, we neither can, nor do we want