mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Make the 'wal_debug' GUC variable a boolean (rather than an integer), and
hide it behind #ifdef WAL_DEBUG blocks.
This commit is contained in:
@ -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.129 2003/12/20 17:31:20 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.130 2004/01/06 17:26:23 neilc Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -86,12 +86,15 @@
|
||||
/* User-settable parameters */
|
||||
int CheckPointSegments = 3;
|
||||
int XLOGbuffers = 8;
|
||||
int XLOG_DEBUG = 0;
|
||||
char *XLOG_sync_method = NULL;
|
||||
const char XLOG_sync_method_default[] = DEFAULT_SYNC_METHOD_STR;
|
||||
char XLOG_archive_dir[MAXPGPATH]; /* null string means
|
||||
* delete 'em */
|
||||
|
||||
#ifdef WAL_DEBUG
|
||||
bool XLOG_DEBUG = false;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* XLOGfileslop is used in the code as the allowed "fuzz" in the number of
|
||||
* preallocated XLOG segments --- we try to have at least XLOGfiles advance
|
||||
@ -766,6 +769,7 @@ begin:;
|
||||
MyProc->logRec = RecPtr;
|
||||
}
|
||||
|
||||
#ifdef WAL_DEBUG
|
||||
if (XLOG_DEBUG)
|
||||
{
|
||||
char buf[8192];
|
||||
@ -779,6 +783,7 @@ begin:;
|
||||
}
|
||||
elog(LOG, "%s", buf);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Record begin of record in appropriate places */
|
||||
if (!no_tran)
|
||||
@ -1074,8 +1079,10 @@ XLogWrite(XLogwrtRqst WriteRqst)
|
||||
openLogSeg >= (RedoRecPtr.xrecoff / XLogSegSize) +
|
||||
(uint32) CheckPointSegments))
|
||||
{
|
||||
#ifdef WAL_DEBUG
|
||||
if (XLOG_DEBUG)
|
||||
elog(LOG, "time for a checkpoint, signaling postmaster");
|
||||
#endif
|
||||
SendPostmasterSignal(PMSIGNAL_DO_CHECKPOINT);
|
||||
}
|
||||
}
|
||||
@ -1214,11 +1221,13 @@ XLogFlush(XLogRecPtr record)
|
||||
if (XLByteLE(record, LogwrtResult.Flush))
|
||||
return;
|
||||
|
||||
#ifdef WAL_DEBUG
|
||||
if (XLOG_DEBUG)
|
||||
elog(LOG, "xlog flush request %X/%X; write %X/%X; flush %X/%X",
|
||||
record.xlogid, record.xrecoff,
|
||||
LogwrtResult.Write.xlogid, LogwrtResult.Write.xrecoff,
|
||||
LogwrtResult.Flush.xlogid, LogwrtResult.Flush.xrecoff);
|
||||
#endif
|
||||
|
||||
START_CRIT_SECTION();
|
||||
|
||||
@ -2613,8 +2622,10 @@ StartupXLOG(void)
|
||||
|
||||
/* This is just to allow attaching to startup process with a debugger */
|
||||
#ifdef XLOG_REPLAY_DELAY
|
||||
#ifdef WAL_DEBUG
|
||||
if (XLOG_DEBUG && ControlFile->state != DB_SHUTDOWNED)
|
||||
sleep(60);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -2742,6 +2753,8 @@ StartupXLOG(void)
|
||||
ShmemVariableCache->nextXid = record->xl_xid;
|
||||
TransactionIdAdvance(ShmemVariableCache->nextXid);
|
||||
}
|
||||
|
||||
#ifdef WAL_DEBUG
|
||||
if (XLOG_DEBUG)
|
||||
{
|
||||
char buf[8192];
|
||||
@ -2755,6 +2768,7 @@ StartupXLOG(void)
|
||||
record->xl_info, XLogRecGetData(record));
|
||||
elog(LOG, "%s", buf);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (record->xl_info & XLR_BKP_BLOCK_MASK)
|
||||
RestoreBkpBlocks(record, EndRecPtr);
|
||||
|
@ -10,7 +10,7 @@
|
||||
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.175 2003/12/03 18:52:00 joe Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.176 2004/01/06 17:26:23 neilc Exp $
|
||||
*
|
||||
*--------------------------------------------------------------------
|
||||
*/
|
||||
@ -336,17 +336,18 @@ const char *const config_type_names[] =
|
||||
* TO ADD AN OPTION:
|
||||
*
|
||||
* 1. Declare a global variable of type bool, int, double, or char*
|
||||
* and make use of it.
|
||||
* and make use of it.
|
||||
*
|
||||
* 2. Decide at what times it's safe to set the option. See guc.h for
|
||||
* details.
|
||||
* details.
|
||||
*
|
||||
* 3. Decide on a name, a default value, upper and lower bounds (if
|
||||
* applicable), etc.
|
||||
* applicable), etc.
|
||||
*
|
||||
* 4. Add a record below.
|
||||
*
|
||||
* 5. Add it to src/backend/utils/misc/postgresql.conf.sample.
|
||||
* 5. Add it to src/backend/utils/misc/postgresql.conf.sample, if
|
||||
* appropriate
|
||||
*
|
||||
* 6. Add it to src/bin/psql/tab-complete.c, if it's a USERSET option.
|
||||
*
|
||||
@ -862,6 +863,18 @@ static struct config_bool ConfigureNamesBool[] =
|
||||
#endif
|
||||
},
|
||||
|
||||
#ifdef WAL_DEBUG
|
||||
{
|
||||
{"wal_debug", PGC_SUSET, DEVELOPER_OPTIONS,
|
||||
gettext_noop("Emit WAL-related debugging output."),
|
||||
NULL,
|
||||
GUC_NOT_IN_SAMPLE
|
||||
},
|
||||
&XLOG_DEBUG,
|
||||
false, NULL, NULL
|
||||
},
|
||||
#endif
|
||||
|
||||
/* End-of-list marker */
|
||||
{
|
||||
{NULL, 0, 0, NULL, NULL}, NULL, false, NULL, NULL
|
||||
@ -1171,16 +1184,6 @@ static struct config_int ConfigureNamesInt[] =
|
||||
8, 4, INT_MAX, NULL, NULL
|
||||
},
|
||||
|
||||
{
|
||||
{"wal_debug", PGC_SUSET, DEVELOPER_OPTIONS,
|
||||
gettext_noop("If nonzero, WAL-related debugging output is logged."),
|
||||
NULL,
|
||||
GUC_NOT_IN_SAMPLE
|
||||
},
|
||||
&XLOG_DEBUG,
|
||||
0, 0, 16, NULL, NULL
|
||||
},
|
||||
|
||||
{
|
||||
{"commit_delay", PGC_USERSET, WAL_CHECKPOINTS,
|
||||
gettext_noop("Sets the delay in microseconds between transaction commit and "
|
||||
|
@ -6,7 +6,7 @@
|
||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/access/xlog.h,v 1.46 2003/12/12 18:45:10 petere Exp $
|
||||
* $PostgreSQL: pgsql/src/include/access/xlog.h,v 1.47 2004/01/06 17:26:23 neilc Exp $
|
||||
*/
|
||||
#ifndef XLOG_H
|
||||
#define XLOG_H
|
||||
@ -189,10 +189,12 @@ extern XLogRecPtr ProcLastRecEnd;
|
||||
extern int CheckPointSegments;
|
||||
extern int CheckPointWarning;
|
||||
extern int XLOGbuffers;
|
||||
extern int XLOG_DEBUG;
|
||||
extern char *XLOG_sync_method;
|
||||
extern const char XLOG_sync_method_default[];
|
||||
|
||||
#ifdef WAL_DEBUG
|
||||
extern bool XLOG_DEBUG;
|
||||
#endif
|
||||
|
||||
extern XLogRecPtr XLogInsert(RmgrId rmid, uint8 info, XLogRecData *rdata);
|
||||
extern void XLogFlush(XLogRecPtr RecPtr);
|
||||
|
@ -6,7 +6,7 @@
|
||||
* for developers. If you edit any of these, be sure to do a *full*
|
||||
* rebuild (and an initdb if noted).
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/pg_config_manual.h,v 1.8 2003/11/29 22:40:53 pgsql Exp $
|
||||
* $PostgreSQL: pgsql/src/include/pg_config_manual.h,v 1.9 2004/01/06 17:26:23 neilc Exp $
|
||||
*------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
@ -224,6 +224,12 @@
|
||||
*/
|
||||
/* #define LOCK_DEBUG */
|
||||
|
||||
/*
|
||||
* Enable debugging print statements for WAL-related operations; see
|
||||
* also the wal_debug GUC var.
|
||||
*/
|
||||
/* #define WAL_DEBUG */
|
||||
|
||||
/*
|
||||
* Other debug #defines (documentation, anyone?)
|
||||
*/
|
||||
|
Reference in New Issue
Block a user