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-2019, 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 | |
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" |
26 | |
27 | |
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); |
32 | |
33 | /* support for local lock management */ |
34 | extern void ResourceOwnerRememberLock(ResourceOwner owner, LOCALLOCK *locallock); |
35 | extern void ResourceOwnerForgetLock(ResourceOwner owner, LOCALLOCK *locallock); |
36 | |
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); |
48 | |
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); |
55 | |
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); |
62 | |
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); |
69 | |
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); |
76 | |
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); |
83 | |
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 *); |
90 | |
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); |
97 | |
98 | #endif /* RESOWNER_PRIVATE_H */ |
99 | |