OSDN Git Service

Fix bug introduced by recent SSI patch to merge ROLLED_BACK and
[pg-rex/syncrep.git] / src / include / utils / relmapper.h
1 /*-------------------------------------------------------------------------
2  *
3  * relmapper.h
4  *        Catalog-to-filenode mapping
5  *
6  *
7  * Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/utils/relmapper.h
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef RELMAPPER_H
15 #define RELMAPPER_H
16
17 #include "access/xlog.h"
18
19 /* ----------------
20  *              relmap-related XLOG entries
21  * ----------------
22  */
23
24 #define XLOG_RELMAP_UPDATE              0x00
25
26 typedef struct xl_relmap_update
27 {
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 */
32 } xl_relmap_update;
33
34 #define MinSizeOfRelmapUpdate offsetof(xl_relmap_update, data)
35
36
37 extern Oid      RelationMapOidToFilenode(Oid relationId, bool shared);
38
39 extern void RelationMapUpdateMap(Oid relationId, Oid fileNode, bool shared,
40                                          bool immediate);
41
42 extern void RelationMapRemoveMapping(Oid relationId);
43
44 extern void RelationMapInvalidate(bool shared);
45 extern void RelationMapInvalidateAll(void);
46
47 extern void AtCCI_RelationMap(void);
48 extern void AtEOXact_RelationMap(bool isCommit);
49 extern void AtPrepare_RelationMap(void);
50
51 extern void CheckPointRelationMap(void);
52
53 extern void RelationMapFinishBootstrap(void);
54
55 extern void RelationMapInitialize(void);
56 extern void RelationMapInitializePhase2(void);
57 extern void RelationMapInitializePhase3(void);
58
59 extern void relmap_redo(XLogRecPtr lsn, XLogRecord *record);
60 extern void relmap_desc(StringInfo buf, uint8 xl_info, char *rec);
61
62 #endif   /* RELMAPPER_H */