1 /*-------------------------------------------------------------------------
4 * Catalog-to-filenode mapping
7 * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
10 * src/include/utils/relmapper.h
12 *-------------------------------------------------------------------------
17 #include "access/xlogreader.h"
18 #include "lib/stringinfo.h"
21 * relmap-related XLOG entries
25 #define XLOG_RELMAP_UPDATE 0x00
27 typedef struct xl_relmap_update
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];
35 #define MinSizeOfRelmapUpdate offsetof(xl_relmap_update, data)
38 extern Oid RelationMapOidToFilenode(Oid relationId, bool shared);
40 extern Oid RelationMapFilenodeToOid(Oid relationId, bool shared);
42 extern void RelationMapUpdateMap(Oid relationId, Oid fileNode, bool shared,
45 extern void RelationMapRemoveMapping(Oid relationId);
47 extern void RelationMapInvalidate(bool shared);
48 extern void RelationMapInvalidateAll(void);
50 extern void AtCCI_RelationMap(void);
51 extern void AtEOXact_RelationMap(bool isCommit);
52 extern void AtPrepare_RelationMap(void);
54 extern void CheckPointRelationMap(void);
56 extern void RelationMapFinishBootstrap(void);
58 extern void RelationMapInitialize(void);
59 extern void RelationMapInitializePhase2(void);
60 extern void RelationMapInitializePhase3(void);
62 extern void relmap_redo(XLogReaderState *record);
63 extern void relmap_desc(StringInfo buf, XLogReaderState *record);
64 extern const char *relmap_identify(uint8 info);
66 #endif /* RELMAPPER_H */