73 lines
2.2 KiB
C
73 lines
2.2 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* relmapper.h
|
|
* Catalog-to-filenode mapping
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2022, 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 relationId, bool shared);
|
|
extern Oid RelationMapOidToFilenodeForDatabase(char *dbpath, Oid relationId);
|
|
extern void RelationMapCopy(Oid dbid, Oid tsid, char *srcdbpath,
|
|
char *dstdbpath);
|
|
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 */
|