mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-19 04:46:59 +08:00
This is primarily useful for the upcoming pg_xlogdump --stats feature, but also allows to remove some duplicated code in the rmgr_desc routines. Due to the separation and harmonization, the output of dipsplayed records changes somewhat. But since this isn't enduser oriented content that's ok. It's potentially desirable to further change pg_xlogdump's display of records. It previously wasn't possible to show the record type separately from the description forcing it to be in the last column. But that's better done in a separate commit. Author: Abhijit Menon-Sen, slightly editorialized by me Reviewed-By: Álvaro Herrera, Andres Freund, and Heikki Linnakangas Discussion: 20140604104716.GA3989@toroid.org
66 lines
1.8 KiB
C
66 lines
1.8 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* relmapper.h
|
|
* Catalog-to-filenode mapping
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2014, 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/xlog.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[1]; /* VARIABLE LENGTH ARRAY */
|
|
} 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 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);
|
|
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 void relmap_redo(XLogRecPtr lsn, XLogRecord *record);
|
|
extern void relmap_desc(StringInfo buf, XLogRecord *record);
|
|
extern const char *relmap_identify(uint8 info);
|
|
|
|
#endif /* RELMAPPER_H */
|