resowner_private.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /*-------------------------------------------------------------------------
  2. *
  3. * resowner_private.h
  4. * POSTGRES resource owner private definitions.
  5. *
  6. * See utils/resowner/README for more info.
  7. *
  8. *
  9. * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
  10. * Portions Copyright (c) 1994, Regents of the University of California
  11. *
  12. * src/include/utils/resowner_private.h
  13. *
  14. *-------------------------------------------------------------------------
  15. */
  16. #ifndef RESOWNER_PRIVATE_H
  17. #define RESOWNER_PRIVATE_H
  18. #include "storage/dsm.h"
  19. #include "storage/fd.h"
  20. #include "storage/lock.h"
  21. #include "utils/catcache.h"
  22. #include "utils/plancache.h"
  23. #include "utils/resowner.h"
  24. #include "utils/snapshot.h"
  25. /* support for buffer refcount management */
  26. extern void ResourceOwnerEnlargeBuffers(ResourceOwner owner);
  27. extern void ResourceOwnerRememberBuffer(ResourceOwner owner, Buffer buffer);
  28. extern void ResourceOwnerForgetBuffer(ResourceOwner owner, Buffer buffer);
  29. /* support for local lock management */
  30. extern void ResourceOwnerRememberLock(ResourceOwner owner, LOCALLOCK *locallock);
  31. extern void ResourceOwnerForgetLock(ResourceOwner owner, LOCALLOCK *locallock);
  32. /* support for catcache refcount management */
  33. extern void ResourceOwnerEnlargeCatCacheRefs(ResourceOwner owner);
  34. extern void ResourceOwnerRememberCatCacheRef(ResourceOwner owner,
  35. HeapTuple tuple);
  36. extern void ResourceOwnerForgetCatCacheRef(ResourceOwner owner,
  37. HeapTuple tuple);
  38. extern void ResourceOwnerEnlargeCatCacheListRefs(ResourceOwner owner);
  39. extern void ResourceOwnerRememberCatCacheListRef(ResourceOwner owner,
  40. CatCList *list);
  41. extern void ResourceOwnerForgetCatCacheListRef(ResourceOwner owner,
  42. CatCList *list);
  43. /* support for relcache refcount management */
  44. extern void ResourceOwnerEnlargeRelationRefs(ResourceOwner owner);
  45. extern void ResourceOwnerRememberRelationRef(ResourceOwner owner,
  46. Relation rel);
  47. extern void ResourceOwnerForgetRelationRef(ResourceOwner owner,
  48. Relation rel);
  49. /* support for plancache refcount management */
  50. extern void ResourceOwnerEnlargePlanCacheRefs(ResourceOwner owner);
  51. extern void ResourceOwnerRememberPlanCacheRef(ResourceOwner owner,
  52. CachedPlan *plan);
  53. extern void ResourceOwnerForgetPlanCacheRef(ResourceOwner owner,
  54. CachedPlan *plan);
  55. /* support for tupledesc refcount management */
  56. extern void ResourceOwnerEnlargeTupleDescs(ResourceOwner owner);
  57. extern void ResourceOwnerRememberTupleDesc(ResourceOwner owner,
  58. TupleDesc tupdesc);
  59. extern void ResourceOwnerForgetTupleDesc(ResourceOwner owner,
  60. TupleDesc tupdesc);
  61. /* support for snapshot refcount management */
  62. extern void ResourceOwnerEnlargeSnapshots(ResourceOwner owner);
  63. extern void ResourceOwnerRememberSnapshot(ResourceOwner owner,
  64. Snapshot snapshot);
  65. extern void ResourceOwnerForgetSnapshot(ResourceOwner owner,
  66. Snapshot snapshot);
  67. /* support for temporary file management */
  68. extern void ResourceOwnerEnlargeFiles(ResourceOwner owner);
  69. extern void ResourceOwnerRememberFile(ResourceOwner owner,
  70. File file);
  71. extern void ResourceOwnerForgetFile(ResourceOwner owner,
  72. File file);
  73. /* support for dynamic shared memory management */
  74. extern void ResourceOwnerEnlargeDSMs(ResourceOwner owner);
  75. extern void ResourceOwnerRememberDSM(ResourceOwner owner,
  76. dsm_segment *);
  77. extern void ResourceOwnerForgetDSM(ResourceOwner owner,
  78. dsm_segment *);
  79. /* support for JITContext management */
  80. extern void ResourceOwnerEnlargeJIT(ResourceOwner owner);
  81. extern void ResourceOwnerRememberJIT(ResourceOwner owner,
  82. Datum handle);
  83. extern void ResourceOwnerForgetJIT(ResourceOwner owner,
  84. Datum handle);
  85. /* support for cryptohash context management */
  86. extern void ResourceOwnerEnlargeCryptoHash(ResourceOwner owner);
  87. extern void ResourceOwnerRememberCryptoHash(ResourceOwner owner,
  88. Datum handle);
  89. extern void ResourceOwnerForgetCryptoHash(ResourceOwner owner,
  90. Datum handle);
  91. /* support for HMAC context management */
  92. extern void ResourceOwnerEnlargeHMAC(ResourceOwner owner);
  93. extern void ResourceOwnerRememberHMAC(ResourceOwner owner,
  94. Datum handle);
  95. extern void ResourceOwnerForgetHMAC(ResourceOwner owner,
  96. Datum handle);
  97. #endif /* RESOWNER_PRIVATE_H */