resowner_private.h 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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-2016, 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. #endif /* RESOWNER_PRIVATE_H */