1 /*-------------------------------------------------------------------------
4 * Catalog-to-filenode mapping
7 * Portions Copyright (c) 1996-2011, 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/xlog.h"
20 * relmap-related XLOG entries
24 #define XLOG_RELMAP_UPDATE 0x00
26 typedef struct xl_relmap_update
28 Oid dbid; /* database ID, or 0 for shared map */
29 Oid tsid; /* database's tablespace, or pg_global */
30 int32 nbytes; /* size of relmap data */
31 char data[1]; /* VARIABLE LENGTH ARRAY */
34 #define MinSizeOfRelmapUpdate offsetof(xl_relmap_update, data)
37 extern Oid RelationMapOidToFilenode(Oid relationId, bool shared);
39 extern void RelationMapUpdateMap(Oid relationId, Oid fileNode, bool shared,
42 extern void RelationMapRemoveMapping(Oid relationId);
44 extern void RelationMapInvalidate(bool shared);
45 extern void RelationMapInvalidateAll(void);
47 extern void AtCCI_RelationMap(void);
48 extern void AtEOXact_RelationMap(bool isCommit);
49 extern void AtPrepare_RelationMap(void);
51 extern void CheckPointRelationMap(void);
53 extern void RelationMapFinishBootstrap(void);
55 extern void RelationMapInitialize(void);
56 extern void RelationMapInitializePhase2(void);
57 extern void RelationMapInitializePhase3(void);
59 extern void relmap_redo(XLogRecPtr lsn, XLogRecord *record);
60 extern void relmap_desc(StringInfo buf, uint8 xl_info, char *rec);
62 #endif /* RELMAPPER_H */