PostgreSQL Source Code  git master
resowner_private.h
Go to the documentation of this file.
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-2023, 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 */
30 extern void ResourceOwnerRememberBuffer(ResourceOwner owner, Buffer buffer);
31 extern void ResourceOwnerForgetBuffer(ResourceOwner owner, Buffer buffer);
32 
33 /* support for IO-in-progress management */
35 extern void ResourceOwnerRememberBufferIO(ResourceOwner owner, Buffer buffer);
36 extern void ResourceOwnerForgetBufferIO(ResourceOwner owner, Buffer buffer);
37 
38 /* support for local lock management */
39 extern void ResourceOwnerRememberLock(ResourceOwner owner, LOCALLOCK *locallock);
40 extern void ResourceOwnerForgetLock(ResourceOwner owner, LOCALLOCK *locallock);
41 
42 /* support for catcache refcount management */
45  HeapTuple tuple);
47  HeapTuple tuple);
50  CatCList *list);
52  CatCList *list);
53 
54 /* support for relcache refcount management */
57  Relation rel);
59  Relation rel);
60 
61 /* support for plancache refcount management */
64  CachedPlan *plan);
66  CachedPlan *plan);
67 
68 /* support for tupledesc refcount management */
71  TupleDesc tupdesc);
73  TupleDesc tupdesc);
74 
75 /* support for snapshot refcount management */
78  Snapshot snapshot);
80  Snapshot snapshot);
81 
82 /* support for temporary file management */
83 extern void ResourceOwnerEnlargeFiles(ResourceOwner owner);
85  File file);
86 extern void ResourceOwnerForgetFile(ResourceOwner owner,
87  File file);
88 
89 /* support for dynamic shared memory management */
90 extern void ResourceOwnerEnlargeDSMs(ResourceOwner owner);
91 extern void ResourceOwnerRememberDSM(ResourceOwner owner,
92  dsm_segment *);
93 extern void ResourceOwnerForgetDSM(ResourceOwner owner,
94  dsm_segment *);
95 
96 /* support for JITContext management */
97 extern void ResourceOwnerEnlargeJIT(ResourceOwner owner);
98 extern void ResourceOwnerRememberJIT(ResourceOwner owner,
99  Datum handle);
100 extern void ResourceOwnerForgetJIT(ResourceOwner owner,
101  Datum handle);
102 
103 /* support for cryptohash context management */
106  Datum handle);
108  Datum handle);
109 
110 /* support for HMAC context management */
111 extern void ResourceOwnerEnlargeHMAC(ResourceOwner owner);
112 extern void ResourceOwnerRememberHMAC(ResourceOwner owner,
113  Datum handle);
114 extern void ResourceOwnerForgetHMAC(ResourceOwner owner,
115  Datum handle);
116 
117 #endif /* RESOWNER_PRIVATE_H */
int Buffer
Definition: buf.h:23
int File
Definition: fd.h:55
#define plan(x)
Definition: pg_regress.c:154
uintptr_t Datum
Definition: postgres.h:64
void ResourceOwnerRememberDSM(ResourceOwner owner, dsm_segment *)
Definition: resowner.c:1406
void ResourceOwnerForgetBufferIO(ResourceOwner owner, Buffer buffer)
Definition: resowner.c:1032
void ResourceOwnerEnlargeJIT(ResourceOwner owner)
Definition: resowner.c:1440
void ResourceOwnerRememberLock(ResourceOwner owner, LOCALLOCK *locallock)
Definition: resowner.c:1050
void ResourceOwnerEnlargeFiles(ResourceOwner owner)
Definition: resowner.c:1350
void ResourceOwnerRememberCatCacheRef(ResourceOwner owner, HeapTuple tuple)
Definition: resowner.c:1110
void ResourceOwnerForgetFile(ResourceOwner owner, File file)
Definition: resowner.c:1370
void ResourceOwnerForgetBuffer(ResourceOwner owner, Buffer buffer)
Definition: resowner.c:994
void ResourceOwnerRememberPlanCacheRef(ResourceOwner owner, CachedPlan *plan)
Definition: resowner.c:1225
void ResourceOwnerEnlargeHMAC(ResourceOwner owner)
Definition: resowner.c:1520
void ResourceOwnerRememberCryptoHash(ResourceOwner owner, Datum handle)
Definition: resowner.c:1486
void ResourceOwnerEnlargeRelationRefs(ResourceOwner owner)
Definition: resowner.c:1169
void ResourceOwnerForgetJIT(ResourceOwner owner, Datum handle)
Definition: resowner.c:1460
void ResourceOwnerForgetTupleDesc(ResourceOwner owner, TupleDesc tupdesc)
Definition: resowner.c:1278
void ResourceOwnerEnlargeCatCacheRefs(ResourceOwner owner)
Definition: resowner.c:1099
void ResourceOwnerForgetDSM(ResourceOwner owner, dsm_segment *)
Definition: resowner.c:1415
void ResourceOwnerRememberFile(ResourceOwner owner, File file)
Definition: resowner.c:1361
void ResourceOwnerRememberRelationRef(ResourceOwner owner, Relation rel)
Definition: resowner.c:1180
void ResourceOwnerRememberTupleDesc(ResourceOwner owner, TupleDesc tupdesc)
Definition: resowner.c:1269
void ResourceOwnerEnlargeTupleDescs(ResourceOwner owner)
Definition: resowner.c:1258
void ResourceOwnerForgetPlanCacheRef(ResourceOwner owner, CachedPlan *plan)
Definition: resowner.c:1234
void ResourceOwnerRememberCatCacheListRef(ResourceOwner owner, CatCList *list)
Definition: resowner.c:1145
void ResourceOwnerEnlargeBuffers(ResourceOwner owner)
Definition: resowner.c:972
void ResourceOwnerRememberHMAC(ResourceOwner owner, Datum handle)
Definition: resowner.c:1531
void ResourceOwnerEnlargeCatCacheListRefs(ResourceOwner owner)
Definition: resowner.c:1134
void ResourceOwnerRememberBuffer(ResourceOwner owner, Buffer buffer)
Definition: resowner.c:985
void ResourceOwnerForgetHMAC(ResourceOwner owner, Datum handle)
Definition: resowner.c:1540
void ResourceOwnerRememberBufferIO(ResourceOwner owner, Buffer buffer)
Definition: resowner.c:1023
void ResourceOwnerEnlargeDSMs(ResourceOwner owner)
Definition: resowner.c:1395
void ResourceOwnerRememberSnapshot(ResourceOwner owner, Snapshot snapshot)
Definition: resowner.c:1315
void ResourceOwnerForgetSnapshot(ResourceOwner owner, Snapshot snapshot)
Definition: resowner.c:1324
void ResourceOwnerForgetRelationRef(ResourceOwner owner, Relation rel)
Definition: resowner.c:1189
void ResourceOwnerForgetCatCacheRef(ResourceOwner owner, HeapTuple tuple)
Definition: resowner.c:1119
void ResourceOwnerEnlargePlanCacheRefs(ResourceOwner owner)
Definition: resowner.c:1214
void ResourceOwnerForgetLock(ResourceOwner owner, LOCALLOCK *locallock)
Definition: resowner.c:1070
void ResourceOwnerEnlargeCryptoHash(ResourceOwner owner)
Definition: resowner.c:1475
void ResourceOwnerForgetCryptoHash(ResourceOwner owner, Datum handle)
Definition: resowner.c:1495
void ResourceOwnerForgetCatCacheListRef(ResourceOwner owner, CatCList *list)
Definition: resowner.c:1154
void ResourceOwnerRememberJIT(ResourceOwner owner, Datum handle)
Definition: resowner.c:1451
void ResourceOwnerEnlargeBufferIOs(ResourceOwner owner)
Definition: resowner.c:1010
void ResourceOwnerEnlargeSnapshots(ResourceOwner owner)
Definition: resowner.c:1304