2
0

relmapper.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*-------------------------------------------------------------------------
  2. *
  3. * relmapper.h
  4. * Catalog-to-filenode mapping
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2022, 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. #include "access/xlogreader.h"
  17. #include "lib/stringinfo.h"
  18. /* ----------------
  19. * relmap-related XLOG entries
  20. * ----------------
  21. */
  22. #define XLOG_RELMAP_UPDATE 0x00
  23. typedef struct xl_relmap_update
  24. {
  25. Oid dbid; /* database ID, or 0 for shared map */
  26. Oid tsid; /* database's tablespace, or pg_global */
  27. int32 nbytes; /* size of relmap data */
  28. char data[FLEXIBLE_ARRAY_MEMBER];
  29. } xl_relmap_update;
  30. #define MinSizeOfRelmapUpdate offsetof(xl_relmap_update, data)
  31. extern Oid RelationMapOidToFilenode(Oid relationId, bool shared);
  32. extern Oid RelationMapFilenodeToOid(Oid relationId, bool shared);
  33. extern Oid RelationMapOidToFilenodeForDatabase(char *dbpath, Oid relationId);
  34. extern void RelationMapCopy(Oid dbid, Oid tsid, char *srcdbpath,
  35. char *dstdbpath);
  36. extern void RelationMapUpdateMap(Oid relationId, Oid fileNode, bool shared,
  37. bool immediate);
  38. extern void RelationMapRemoveMapping(Oid relationId);
  39. extern void RelationMapInvalidate(bool shared);
  40. extern void RelationMapInvalidateAll(void);
  41. extern void AtCCI_RelationMap(void);
  42. extern void AtEOXact_RelationMap(bool isCommit, bool isParallelWorker);
  43. extern void AtPrepare_RelationMap(void);
  44. extern void CheckPointRelationMap(void);
  45. extern void RelationMapFinishBootstrap(void);
  46. extern void RelationMapInitialize(void);
  47. extern void RelationMapInitializePhase2(void);
  48. extern void RelationMapInitializePhase3(void);
  49. extern Size EstimateRelationMapSpace(void);
  50. extern void SerializeRelationMap(Size maxSize, char *startAddress);
  51. extern void RestoreRelationMap(char *startAddress);
  52. extern void relmap_redo(XLogReaderState *record);
  53. extern void relmap_desc(StringInfo buf, XLogReaderState *record);
  54. extern const char *relmap_identify(uint8 info);
  55. #endif /* RELMAPPER_H */