]> granicus.if.org Git - postgresql/blob - src/include/utils/resowner_private.h
Add GUC and storage parameter to set the maximum size of GIN pending list.
[postgresql] / src / include / utils / resowner_private.h
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-2014, 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 #endif   /* RESOWNER_PRIVATE_H */