relmapper.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*-------------------------------------------------------------------------
  2. *
  3. * relmapper.h
  4. * Catalog-to-filenode mapping
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2016, 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 void RelationMapUpdateMap(Oid relationId, Oid fileNode, bool shared,
  34. bool immediate);
  35. extern void RelationMapRemoveMapping(Oid relationId);
  36. extern void RelationMapInvalidate(bool shared);
  37. extern void RelationMapInvalidateAll(void);
  38. extern void AtCCI_RelationMap(void);
  39. extern void AtEOXact_RelationMap(bool isCommit);
  40. extern void AtPrepare_RelationMap(void);
  41. extern void CheckPointRelationMap(void);
  42. extern void RelationMapFinishBootstrap(void);
  43. extern void RelationMapInitialize(void);
  44. extern void RelationMapInitializePhase2(void);
  45. extern void RelationMapInitializePhase3(void);
  46. extern void relmap_redo(XLogReaderState *record);
  47. extern void relmap_desc(StringInfo buf, XLogReaderState *record);
  48. extern const char *relmap_identify(uint8 info);
  49. #endif /* RELMAPPER_H */