PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
relmapper.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * relmapper.h
4 * Catalog-to-filenumber mapping
5 *
6 *
7 * Portions Copyright (c) 1996-2025, 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/xlogreader.h"
18#include "lib/stringinfo.h"
19
20/* ----------------
21 * relmap-related XLOG entries
22 * ----------------
23 */
24
25#define XLOG_RELMAP_UPDATE 0x00
26
27typedef struct xl_relmap_update
28{
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 */
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);
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
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 */
uint8_t uint8
Definition: c.h:500
#define FLEXIBLE_ARRAY_MEMBER
Definition: c.h:434
int32_t int32
Definition: c.h:498
size_t Size
Definition: c.h:576
static char * buf
Definition: pg_test_fsync.c:72
unsigned int Oid
Definition: postgres_ext.h:30
RelFileNumber RelationMapOidToFilenumberForDatabase(char *dbpath, Oid relationId)
Definition: relmapper.c:265
Size EstimateRelationMapSpace(void)
Definition: relmapper.c:713
void RelationMapRemoveMapping(Oid relationId)
Definition: relmapper.c:438
void SerializeRelationMap(Size maxSize, char *startAddress)
Definition: relmapper.c:724
void relmap_desc(StringInfo buf, XLogReaderState *record)
Definition: relmapdesc.c:20
void RelationMapCopy(Oid dbid, Oid tsid, char *srcdbpath, char *dstdbpath)
Definition: relmapper.c:292
Oid RelationMapFilenumberToOid(RelFileNumber filenumber, bool shared)
Definition: relmapper.c:218
void RelationMapInvalidateAll(void)
Definition: relmapper.c:490
void RestoreRelationMap(char *startAddress)
Definition: relmapper.c:741
struct xl_relmap_update xl_relmap_update
void RelationMapInitialize(void)
Definition: relmapper.c:651
void AtPrepare_RelationMap(void)
Definition: relmapper.c:588
void relmap_redo(XLogReaderState *record)
Definition: relmapper.c:1096
void AtEOXact_RelationMap(bool isCommit, bool isParallelWorker)
Definition: relmapper.c:541
void RelationMapInvalidate(bool shared)
Definition: relmapper.c:468
void RelationMapInitializePhase2(void)
Definition: relmapper.c:671
void RelationMapFinishBootstrap(void)
Definition: relmapper.c:625
RelFileNumber RelationMapOidToFilenumber(Oid relationId, bool shared)
Definition: relmapper.c:165
void RelationMapUpdateMap(Oid relationId, RelFileNumber fileNumber, bool shared, bool immediate)
Definition: relmapper.c:325
void RelationMapInitializePhase3(void)
Definition: relmapper.c:692
void AtCCI_RelationMap(void)
Definition: relmapper.c:504
void CheckPointRelationMap(void)
Definition: relmapper.c:611
const char * relmap_identify(uint8 info)
Definition: relmapdesc.c:35
Oid RelFileNumber
Definition: relpath.h:25
char data[FLEXIBLE_ARRAY_MEMBER]
Definition: relmapper.h:32