1 /*-------------------------------------------------------------------------
4 * POSTGRES resource owner private definitions.
6 * See utils/resowner/README for more info.
9 * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
10 * Portions Copyright (c) 1994, Regents of the University of California
12 * src/include/utils/resowner_private.h
14 *-------------------------------------------------------------------------
16 #ifndef RESOWNER_PRIVATE_H
17 #define RESOWNER_PRIVATE_H
19 #include "storage/dsm.h"
20 #include "storage/fd.h"
21 #include "storage/lock.h"
22 #include "utils/catcache.h"
23 #include "utils/plancache.h"
24 #include "utils/resowner.h"
25 #include "utils/snapshot.h"
28 /* support for buffer refcount management */
29 extern void ResourceOwnerEnlargeBuffers(ResourceOwner owner
);
30 extern void ResourceOwnerRememberBuffer(ResourceOwner owner
, Buffer buffer
);
31 extern void ResourceOwnerForgetBuffer(ResourceOwner owner
, Buffer buffer
);
33 /* support for local lock management */
34 extern void ResourceOwnerRememberLock(ResourceOwner owner
, LOCALLOCK
*locallock
);
35 extern void ResourceOwnerForgetLock(ResourceOwner owner
, LOCALLOCK
*locallock
);
37 /* support for catcache refcount management */
38 extern void ResourceOwnerEnlargeCatCacheRefs(ResourceOwner owner
);
39 extern void ResourceOwnerRememberCatCacheRef(ResourceOwner owner
,
41 extern void ResourceOwnerForgetCatCacheRef(ResourceOwner owner
,
43 extern void ResourceOwnerEnlargeCatCacheListRefs(ResourceOwner owner
);
44 extern void ResourceOwnerRememberCatCacheListRef(ResourceOwner owner
,
46 extern void ResourceOwnerForgetCatCacheListRef(ResourceOwner owner
,
49 /* support for relcache refcount management */
50 extern void ResourceOwnerEnlargeRelationRefs(ResourceOwner owner
);
51 extern void ResourceOwnerRememberRelationRef(ResourceOwner owner
,
53 extern void ResourceOwnerForgetRelationRef(ResourceOwner owner
,
56 /* support for plancache refcount management */
57 extern void ResourceOwnerEnlargePlanCacheRefs(ResourceOwner owner
);
58 extern void ResourceOwnerRememberPlanCacheRef(ResourceOwner owner
,
60 extern void ResourceOwnerForgetPlanCacheRef(ResourceOwner owner
,
63 /* support for tupledesc refcount management */
64 extern void ResourceOwnerEnlargeTupleDescs(ResourceOwner owner
);
65 extern void ResourceOwnerRememberTupleDesc(ResourceOwner owner
,
67 extern void ResourceOwnerForgetTupleDesc(ResourceOwner owner
,
70 /* support for snapshot refcount management */
71 extern void ResourceOwnerEnlargeSnapshots(ResourceOwner owner
);
72 extern void ResourceOwnerRememberSnapshot(ResourceOwner owner
,
74 extern void ResourceOwnerForgetSnapshot(ResourceOwner owner
,
77 /* support for temporary file management */
78 extern void ResourceOwnerEnlargeFiles(ResourceOwner owner
);
79 extern void ResourceOwnerRememberFile(ResourceOwner owner
,
81 extern void ResourceOwnerForgetFile(ResourceOwner owner
,
84 /* support for dynamic shared memory management */
85 extern void ResourceOwnerEnlargeDSMs(ResourceOwner owner
);
86 extern void ResourceOwnerRememberDSM(ResourceOwner owner
,
88 extern void ResourceOwnerForgetDSM(ResourceOwner owner
,
91 /* support for JITContext management */
92 extern void ResourceOwnerEnlargeJIT(ResourceOwner owner
);
93 extern void ResourceOwnerRememberJIT(ResourceOwner owner
,
95 extern void ResourceOwnerForgetJIT(ResourceOwner owner
,
98 /* support for cryptohash context management */
99 extern void ResourceOwnerEnlargeCryptoHash(ResourceOwner owner
);
100 extern void ResourceOwnerRememberCryptoHash(ResourceOwner owner
,
102 extern void ResourceOwnerForgetCryptoHash(ResourceOwner owner
,
105 /* support for HMAC context management */
106 extern void ResourceOwnerEnlargeHMAC(ResourceOwner owner
);
107 extern void ResourceOwnerRememberHMAC(ResourceOwner owner
,
109 extern void ResourceOwnerForgetHMAC(ResourceOwner owner
,
112 #endif /* RESOWNER_PRIVATE_H */