Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
standbydefs.h75 linesDownload Raw Back to storage
1/*-------------------------------------------------------------------------2 *3 * standbydefs.h4 *	   Frontend exposed definitions for hot standby mode.5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/storage/standbydefs.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef STANDBYDEFS_H15#define STANDBYDEFS_H16 17#include "access/xlogreader.h"18#include "lib/stringinfo.h"19#include "storage/lockdefs.h"20#include "storage/sinval.h"21 22/* Recovery handlers for the Standby Rmgr (RM_STANDBY_ID) */23extern void standby_redo(XLogReaderState *record);24extern void standby_desc(StringInfo buf, XLogReaderState *record);25extern const char *standby_identify(uint8 info);26extern void standby_desc_invalidations(StringInfo buf,27									   int nmsgs, SharedInvalidationMessage *msgs,28									   Oid dbId, Oid tsId,29									   bool relcacheInitFileInval);30 31/*32 * XLOG message types33 */34#define XLOG_STANDBY_LOCK			0x0035#define XLOG_RUNNING_XACTS			0x1036#define XLOG_INVALIDATIONS			0x2037 38typedef struct xl_standby_locks39{40	int			nlocks;			/* number of entries in locks array */41	xl_standby_lock locks[FLEXIBLE_ARRAY_MEMBER];42} xl_standby_locks;43 44/*45 * When we write running xact data to WAL, we use this structure.46 */47typedef struct xl_running_xacts48{49	int			xcnt;			/* # of xact ids in xids[] */50	int			subxcnt;		/* # of subxact ids in xids[] */51	bool		subxid_overflow;	/* snapshot overflowed, subxids missing */52	TransactionId nextXid;		/* xid from ShmemVariableCache->nextXid */53	TransactionId oldestRunningXid; /* *not* oldestXmin */54	TransactionId latestCompletedXid;	/* so we can set xmax */55 56	TransactionId xids[FLEXIBLE_ARRAY_MEMBER];57} xl_running_xacts;58 59/*60 * Invalidations for standby, currently only when transactions without an61 * assigned xid commit.62 */63typedef struct xl_invalidations64{65	Oid			dbId;			/* MyDatabaseId */66	Oid			tsId;			/* MyDatabaseTableSpace */67	bool		relcacheInitFileInval;	/* invalidate relcache init files */68	int			nmsgs;			/* number of shared inval msgs */69	SharedInvalidationMessage msgs[FLEXIBLE_ARRAY_MEMBER];70} xl_invalidations;71 72#define MinSizeOfInvalidations offsetof(xl_invalidations, msgs)73 74#endif							/* STANDBYDEFS_H */75 
codekingpro/portable-devtools · Team Ai