From c80b31d557cb4b2d2a65cb0a7e71fd961834fdb2 Mon Sep 17 00:00:00 2001 From: Simon Riggs Date: Wed, 20 Jan 2016 18:51:34 -0800 Subject: [PATCH] Refactor headers to split out standby defs Jeff Janes --- src/backend/access/rmgrdesc/standbydesc.c | 2 +- src/bin/pg_xlogdump/rmgrdesc.c | 2 +- src/include/storage/standby.h | 36 +-------------- src/include/storage/standbydefs.h | 53 +++++++++++++++++++++++ 4 files changed, 56 insertions(+), 37 deletions(-) create mode 100644 src/include/storage/standbydefs.h diff --git a/src/backend/access/rmgrdesc/standbydesc.c b/src/backend/access/rmgrdesc/standbydesc.c index f97f7d517e..4872cfb2d9 100644 --- a/src/backend/access/rmgrdesc/standbydesc.c +++ b/src/backend/access/rmgrdesc/standbydesc.c @@ -14,7 +14,7 @@ */ #include "postgres.h" -#include "storage/standby.h" +#include "storage/standbydefs.h" static void standby_desc_running_xacts(StringInfo buf, xl_running_xacts *xlrec) diff --git a/src/bin/pg_xlogdump/rmgrdesc.c b/src/bin/pg_xlogdump/rmgrdesc.c index 5b88a8dd67..f9cd395af6 100644 --- a/src/bin/pg_xlogdump/rmgrdesc.c +++ b/src/bin/pg_xlogdump/rmgrdesc.c @@ -27,7 +27,7 @@ #include "commands/tablespace.h" #include "replication/origin.h" #include "rmgrdesc.h" -#include "storage/standby.h" +#include "storage/standbydefs.h" #include "utils/relmapper.h" #define PG_RMGR(symname,name,redo,desc,identify,startup,cleanup) \ diff --git a/src/include/storage/standby.h b/src/include/storage/standby.h index 6c98d70e56..7e6b2254cd 100644 --- a/src/include/storage/standby.h +++ b/src/include/storage/standby.h @@ -14,9 +14,7 @@ #ifndef STANDBY_H #define STANDBY_H -#include "access/xlogreader.h" -#include "lib/stringinfo.h" -#include "storage/lockdefs.h" +#include "storage/standbydefs.h" #include "storage/procsignal.h" #include "storage/relfilenode.h" @@ -51,41 +49,9 @@ extern void StandbyReleaseLockTree(TransactionId xid, extern void StandbyReleaseAllLocks(void); extern void StandbyReleaseOldLocks(int nxids, TransactionId *xids); -/* - * XLOG message types - */ -#define XLOG_STANDBY_LOCK 0x00 -#define XLOG_RUNNING_XACTS 0x10 - -typedef struct xl_standby_locks -{ - int nlocks; /* number of entries in locks array */ - xl_standby_lock locks[FLEXIBLE_ARRAY_MEMBER]; -} xl_standby_locks; - -/* - * When we write running xact data to WAL, we use this structure. - */ -typedef struct xl_running_xacts -{ - int xcnt; /* # of xact ids in xids[] */ - int subxcnt; /* # of subxact ids in xids[] */ - bool subxid_overflow; /* snapshot overflowed, subxids missing */ - TransactionId nextXid; /* copy of ShmemVariableCache->nextXid */ - TransactionId oldestRunningXid; /* *not* oldestXmin */ - TransactionId latestCompletedXid; /* so we can set xmax */ - - TransactionId xids[FLEXIBLE_ARRAY_MEMBER]; -} xl_running_xacts; - #define MinSizeOfXactRunningXacts offsetof(xl_running_xacts, xids) -/* Recovery handlers for the Standby Rmgr (RM_STANDBY_ID) */ -extern void standby_redo(XLogReaderState *record); -extern void standby_desc(StringInfo buf, XLogReaderState *record); -extern const char *standby_identify(uint8 info); - /* * Declarations for GetRunningTransactionData(). Similar to Snapshots, but * not quite. This has nothing at all to do with visibility on this server, diff --git a/src/include/storage/standbydefs.h b/src/include/storage/standbydefs.h new file mode 100644 index 0000000000..a2c9db8691 --- /dev/null +++ b/src/include/storage/standbydefs.h @@ -0,0 +1,53 @@ +/*------------------------------------------------------------------------- + * + * standbydef.h + * Frontend exposed definitions for hot standby mode. + * + * + * Portions Copyright (c) 1996-2015, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/storage/standbydefs.h + * + *------------------------------------------------------------------------- + */ +#ifndef STANDBYDEFS_H +#define STANDBYDEFS_H + +#include "access/xlogreader.h" +#include "lib/stringinfo.h" +#include "storage/lockdefs.h" + +/* Recovery handlers for the Standby Rmgr (RM_STANDBY_ID) */ +extern void standby_redo(XLogReaderState *record); +extern void standby_desc(StringInfo buf, XLogReaderState *record); +extern const char *standby_identify(uint8 info); + +/* + * XLOG message types + */ +#define XLOG_STANDBY_LOCK 0x00 +#define XLOG_RUNNING_XACTS 0x10 + +typedef struct xl_standby_locks +{ + int nlocks; /* number of entries in locks array */ + xl_standby_lock locks[FLEXIBLE_ARRAY_MEMBER]; +} xl_standby_locks; + +/* + * When we write running xact data to WAL, we use this structure. + */ +typedef struct xl_running_xacts +{ + int xcnt; /* # of xact ids in xids[] */ + int subxcnt; /* # of subxact ids in xids[] */ + bool subxid_overflow; /* snapshot overflowed, subxids missing */ + TransactionId nextXid; /* copy of ShmemVariableCache->nextXid */ + TransactionId oldestRunningXid; /* *not* oldestXmin */ + TransactionId latestCompletedXid; /* so we can set xmax */ + + TransactionId xids[FLEXIBLE_ARRAY_MEMBER]; +} xl_running_xacts; + +#endif /* STANDBYDEFS_H */ -- 2.40.0