Update copyright for 2022
[pgsql.git] / src / include / utils / resowner_private.h
blobd01cccc27c192e78400ebdd8b7c0cc3a7c4a8ce0
1 /*-------------------------------------------------------------------------
3 * resowner_private.h
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,
40 HeapTuple tuple);
41 extern void ResourceOwnerForgetCatCacheRef(ResourceOwner owner,
42 HeapTuple tuple);
43 extern void ResourceOwnerEnlargeCatCacheListRefs(ResourceOwner owner);
44 extern void ResourceOwnerRememberCatCacheListRef(ResourceOwner owner,
45 CatCList *list);
46 extern void ResourceOwnerForgetCatCacheListRef(ResourceOwner owner,
47 CatCList *list);
49 /* support for relcache refcount management */
50 extern void ResourceOwnerEnlargeRelationRefs(ResourceOwner owner);
51 extern void ResourceOwnerRememberRelationRef(ResourceOwner owner,
52 Relation rel);
53 extern void ResourceOwnerForgetRelationRef(ResourceOwner owner,
54 Relation rel);
56 /* support for plancache refcount management */
57 extern void ResourceOwnerEnlargePlanCacheRefs(ResourceOwner owner);
58 extern void ResourceOwnerRememberPlanCacheRef(ResourceOwner owner,
59 CachedPlan *plan);
60 extern void ResourceOwnerForgetPlanCacheRef(ResourceOwner owner,
61 CachedPlan *plan);
63 /* support for tupledesc refcount management */
64 extern void ResourceOwnerEnlargeTupleDescs(ResourceOwner owner);
65 extern void ResourceOwnerRememberTupleDesc(ResourceOwner owner,
66 TupleDesc tupdesc);
67 extern void ResourceOwnerForgetTupleDesc(ResourceOwner owner,
68 TupleDesc tupdesc);
70 /* support for snapshot refcount management */
71 extern void ResourceOwnerEnlargeSnapshots(ResourceOwner owner);
72 extern void ResourceOwnerRememberSnapshot(ResourceOwner owner,
73 Snapshot snapshot);
74 extern void ResourceOwnerForgetSnapshot(ResourceOwner owner,
75 Snapshot snapshot);
77 /* support for temporary file management */
78 extern void ResourceOwnerEnlargeFiles(ResourceOwner owner);
79 extern void ResourceOwnerRememberFile(ResourceOwner owner,
80 File file);
81 extern void ResourceOwnerForgetFile(ResourceOwner owner,
82 File file);
84 /* support for dynamic shared memory management */
85 extern void ResourceOwnerEnlargeDSMs(ResourceOwner owner);
86 extern void ResourceOwnerRememberDSM(ResourceOwner owner,
87 dsm_segment *);
88 extern void ResourceOwnerForgetDSM(ResourceOwner owner,
89 dsm_segment *);
91 /* support for JITContext management */
92 extern void ResourceOwnerEnlargeJIT(ResourceOwner owner);
93 extern void ResourceOwnerRememberJIT(ResourceOwner owner,
94 Datum handle);
95 extern void ResourceOwnerForgetJIT(ResourceOwner owner,
96 Datum handle);
98 /* support for cryptohash context management */
99 extern void ResourceOwnerEnlargeCryptoHash(ResourceOwner owner);
100 extern void ResourceOwnerRememberCryptoHash(ResourceOwner owner,
101 Datum handle);
102 extern void ResourceOwnerForgetCryptoHash(ResourceOwner owner,
103 Datum handle);
105 /* support for HMAC context management */
106 extern void ResourceOwnerEnlargeHMAC(ResourceOwner owner);
107 extern void ResourceOwnerRememberHMAC(ResourceOwner owner,
108 Datum handle);
109 extern void ResourceOwnerForgetHMAC(ResourceOwner owner,
110 Datum handle);
112 #endif /* RESOWNER_PRIVATE_H */