codekingpro/portable-devtools
115k
1/*-------------------------------------------------------------------------2 *3 * relmapper.h4 * Catalog-to-filenumber mapping5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/utils/relmapper.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef RELMAPPER_H15#define RELMAPPER_H16 17#include "access/xlogreader.h"18#include "lib/stringinfo.h"19 20/* ----------------21 * relmap-related XLOG entries22 * ----------------23 */24 25#define XLOG_RELMAP_UPDATE 0x0026 27typedef struct xl_relmap_update28{29 Oid dbid; /* database ID, or 0 for shared map */30 Oid tsid; /* database's tablespace, or pg_global */31 int32 nbytes; /* size of relmap data */32 char data[FLEXIBLE_ARRAY_MEMBER];33} xl_relmap_update;34 35#define MinSizeOfRelmapUpdate offsetof(xl_relmap_update, data)36 37 38extern RelFileNumber RelationMapOidToFilenumber(Oid relationId, bool shared);39 40extern Oid RelationMapFilenumberToOid(RelFileNumber filenumber, bool shared);41extern RelFileNumber RelationMapOidToFilenumberForDatabase(char *dbpath,42 Oid relationId);43extern void RelationMapCopy(Oid dbid, Oid tsid, char *srcdbpath,44 char *dstdbpath);45extern void RelationMapUpdateMap(Oid relationId, RelFileNumber fileNumber,46 bool shared, bool immediate);47 48extern void RelationMapRemoveMapping(Oid relationId);49 50extern void RelationMapInvalidate(bool shared);51extern void RelationMapInvalidateAll(void);52 53extern void AtCCI_RelationMap(void);54extern void AtEOXact_RelationMap(bool isCommit, bool isParallelWorker);55extern void AtPrepare_RelationMap(void);56 57extern void CheckPointRelationMap(void);58 59extern void RelationMapFinishBootstrap(void);60 61extern void RelationMapInitialize(void);62extern void RelationMapInitializePhase2(void);63extern void RelationMapInitializePhase3(void);64 65extern Size EstimateRelationMapSpace(void);66extern void SerializeRelationMap(Size maxSize, char *startAddress);67extern void RestoreRelationMap(char *startAddress);68 69extern void relmap_redo(XLogReaderState *record);70extern void relmap_desc(StringInfo buf, XLogReaderState *record);71extern const char *relmap_identify(uint8 info);72 73#endif /* RELMAPPER_H */74 