| /*------------------------------------------------------------------------- |
| * |
| * relmapper.h |
| * Catalog-to-filenode mapping |
| * |
| * |
| * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group |
| * Portions Copyright (c) 1994, Regents of the University of California |
| * |
| * src/include/utils/relmapper.h |
| * |
| *------------------------------------------------------------------------- |
| */ |
| #ifndef RELMAPPER_H |
| #define RELMAPPER_H |
| |
| #include "access/xlogreader.h" |
| #include "lib/stringinfo.h" |
| |
| /* ---------------- |
| * relmap-related XLOG entries |
| * ---------------- |
| */ |
| |
| #define XLOG_RELMAP_UPDATE 0x00 |
| |
| typedef struct xl_relmap_update |
| { |
| Oid dbid; /* database ID, or 0 for shared map */ |
| Oid tsid; /* database's tablespace, or pg_global */ |
| int32 nbytes; /* size of relmap data */ |
| char data[FLEXIBLE_ARRAY_MEMBER]; |
| } xl_relmap_update; |
| |
| #define MinSizeOfRelmapUpdate offsetof(xl_relmap_update, data) |
| |
| |
| extern Oid RelationMapOidToFilenode(Oid relationId, bool shared); |
| |
| extern Oid RelationMapFilenodeToOid(Oid filenode, bool shared); |
| |
| extern void RelationMapUpdateMap(Oid relationId, Oid fileNode, bool shared, |
| bool immediate); |
| |
| extern void RelationMapRemoveMapping(Oid relationId); |
| |
| extern void RelationMapInvalidate(bool shared); |
| extern void RelationMapInvalidateAll(void); |
| |
| extern void AtCCI_RelationMap(void); |
| extern void AtEOXact_RelationMap(bool isCommit, bool isParallelWorker); |
| extern void AtPrepare_RelationMap(void); |
| |
| extern void CheckPointRelationMap(void); |
| |
| extern void RelationMapFinishBootstrap(void); |
| |
| extern void RelationMapInitialize(void); |
| extern void RelationMapInitializePhase2(void); |
| extern void RelationMapInitializePhase3(void); |
| |
| extern Size EstimateRelationMapSpace(void); |
| extern void SerializeRelationMap(Size maxSize, char *startAddress); |
| extern void RestoreRelationMap(char *startAddress); |
| |
| extern void relmap_redo(XLogReaderState *record); |
| extern void relmap_desc(StringInfo buf, XLogReaderState *record); |
| extern const char *relmap_identify(uint8 info); |
| |
| #endif /* RELMAPPER_H */ |