Change a few remaining calls of XLogArchivingActive() to use
XLogIsNeeded() instead, to determine if an otherwise non-logged operation needs to be logged in WAL for standby servers. Fujii Masao
This commit is contained in:
parent
e3f36838e5
commit
e0e8b96345
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.318 2010/01/22 16:40:18 rhaas Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.319 2010/01/28 07:31:42 heikki Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -2998,7 +2998,8 @@ ATRewriteTable(AlteredTableInfo *tab, Oid OIDNewHeap)
|
||||
* Prepare a BulkInsertState and options for heap_insert. Because
|
||||
* we're building a new heap, we can skip WAL-logging and fsync it
|
||||
* to disk at the end instead (unless WAL-logging is required for
|
||||
* archiving). The FSM is empty too, so don't bother using it.
|
||||
* archiving or streaming replication). The FSM is empty too,
|
||||
* so don't bother using it.
|
||||
*/
|
||||
if (newrel)
|
||||
{
|
||||
@ -3006,7 +3007,7 @@ ATRewriteTable(AlteredTableInfo *tab, Oid OIDNewHeap)
|
||||
bistate = GetBulkInsertState();
|
||||
|
||||
hi_options = HEAP_INSERT_SKIP_FSM;
|
||||
if (!XLogArchivingActive())
|
||||
if (!XLogIsNeeded())
|
||||
hi_options |= HEAP_INSERT_SKIP_WAL;
|
||||
}
|
||||
else
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.127 2010/01/02 16:57:40 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.128 2010/01/28 07:31:42 heikki Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -288,7 +288,7 @@ vacuum_log_cleanup_info(Relation rel, LVRelStats *vacrelstats)
|
||||
* No need to log changes for temp tables, they do not contain
|
||||
* data visible on the standby server.
|
||||
*/
|
||||
if (rel->rd_istemp || !XLogArchivingActive())
|
||||
if (rel->rd_istemp || !XLogIsNeeded())
|
||||
return;
|
||||
|
||||
(void) log_heap_cleanup_info(rel->rd_node, vacrelstats->latestRemovedXid);
|
||||
|
@ -6,7 +6,7 @@
|
||||
* Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/access/xlog.h,v 1.98 2010/01/20 19:43:40 heikki Exp $
|
||||
* $PostgreSQL: pgsql/src/include/access/xlog.h,v 1.99 2010/01/28 07:31:42 heikki Exp $
|
||||
*/
|
||||
#ifndef XLOG_H
|
||||
#define XLOG_H
|
||||
@ -186,7 +186,6 @@ extern int MaxStandbyDelay;
|
||||
|
||||
#define XLogArchivingActive() (XLogArchiveMode)
|
||||
#define XLogArchiveCommandSet() (XLogArchiveCommand[0] != '\0')
|
||||
#define XLogStandbyInfoActive() (XLogRequestRecoveryConnections && XLogArchiveMode)
|
||||
|
||||
/*
|
||||
* This is in walsender.c, but declared here so that we don't need to include
|
||||
@ -200,6 +199,9 @@ extern int MaxWalSenders;
|
||||
*/
|
||||
#define XLogIsNeeded() (XLogArchivingActive() || (MaxWalSenders > 0))
|
||||
|
||||
/* Do we need to WAL-log information required only for Hot Standby? */
|
||||
#define XLogStandbyInfoActive() (XLogRequestRecoveryConnections && XLogIsNeeded())
|
||||
|
||||
#ifdef WAL_DEBUG
|
||||
extern bool XLOG_DEBUG;
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user