codekingpro/portable-devtools
114k
1/*-------------------------------------------------------------------------2 *3 * storage_xlog.h4 * prototypes for XLog support for backend/catalog/storage.c5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/catalog/storage_xlog.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef STORAGE_XLOG_H15#define STORAGE_XLOG_H16 17#include "access/xlogreader.h"18#include "lib/stringinfo.h"19#include "storage/block.h"20#include "storage/relfilelocator.h"21 22/*23 * Declarations for smgr-related XLOG records24 *25 * Note: we log file creation and truncation here, but logging of deletion26 * actions is handled by xact.c, because it is part of transaction commit.27 */28 29/* XLOG gives us high 4 bits */30#define XLOG_SMGR_CREATE 0x1031#define XLOG_SMGR_TRUNCATE 0x2032 33typedef struct xl_smgr_create34{35 RelFileLocator rlocator;36 ForkNumber forkNum;37} xl_smgr_create;38 39/* flags for xl_smgr_truncate */40#define SMGR_TRUNCATE_HEAP 0x000141#define SMGR_TRUNCATE_VM 0x000242#define SMGR_TRUNCATE_FSM 0x000443#define SMGR_TRUNCATE_ALL \44 (SMGR_TRUNCATE_HEAP|SMGR_TRUNCATE_VM|SMGR_TRUNCATE_FSM)45 46typedef struct xl_smgr_truncate47{48 BlockNumber blkno;49 RelFileLocator rlocator;50 int flags;51} xl_smgr_truncate;52 53extern void log_smgrcreate(const RelFileLocator *rlocator, ForkNumber forkNum);54 55extern void smgr_redo(XLogReaderState *record);56extern void smgr_desc(StringInfo buf, XLogReaderState *record);57extern const char *smgr_identify(uint8 info);58 59#endif /* STORAGE_XLOG_H */60 