PostgreSQL Source Code: src/include/utils/inval.h Source File

PostgreSQL Source Code git master
inval.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * inval.h
4 * POSTGRES cache invalidation dispatcher definitions.
5 *
6 *
7 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
9 *
10 * src/include/utils/inval.h
11 *
12 *-------------------------------------------------------------------------
13 */
14#ifndef INVAL_H
15#define INVAL_H
16
17#include "access/htup.h"
18#include "storage/relfilelocator.h"
19#include "utils/relcache.h"
20
21extern PGDLLIMPORT int debug_discard_caches;
22
23 #define MIN_DEBUG_DISCARD_CACHES 0
24
25#ifdef DISCARD_CACHES_ENABLED
26 /* Set default based on older compile-time-only cache clobber macros */
27#if defined(CLOBBER_CACHE_RECURSIVELY)
28#define DEFAULT_DEBUG_DISCARD_CACHES 3
29#elif defined(CLOBBER_CACHE_ALWAYS)
30#define DEFAULT_DEBUG_DISCARD_CACHES 1
31#else
32#define DEFAULT_DEBUG_DISCARD_CACHES 0
33#endif
34#define MAX_DEBUG_DISCARD_CACHES 5
35#else /* not DISCARD_CACHES_ENABLED */
36 #define DEFAULT_DEBUG_DISCARD_CACHES 0
37 #define MAX_DEBUG_DISCARD_CACHES 0
38#endif /* not DISCARD_CACHES_ENABLED */
39
40
41 typedef void (*SyscacheCallbackFunction) (Datum arg, int cacheid, uint32 hashvalue);
42 typedef void (*RelcacheCallbackFunction) (Datum arg, Oid relid);
43 typedef void (*RelSyncCallbackFunction) (Datum arg, Oid relid);
44
45
46extern void AcceptInvalidationMessages(void);
47
48extern void AtEOXact_Inval(bool isCommit);
49
50extern void PreInplace_Inval(void);
51extern void AtInplace_Inval(void);
52extern void ForgetInplace_Inval(void);
53
54extern void AtEOSubXact_Inval(bool isCommit);
55
56extern void PostPrepare_Inval(void);
57
58extern void CommandEndInvalidationMessages(void);
59
60extern void CacheInvalidateHeapTuple(Relation relation,
61 HeapTuple tuple,
62 HeapTuple newtuple);
63extern void CacheInvalidateHeapTupleInplace(Relation relation,
64 HeapTuple tuple,
65 HeapTuple newtuple);
66
67extern void CacheInvalidateCatalog(Oid catalogId);
68
69extern void CacheInvalidateRelcache(Relation relation);
70
71extern void CacheInvalidateRelcacheAll(void);
72
73extern void CacheInvalidateRelcacheByTuple(HeapTuple classTuple);
74
75extern void CacheInvalidateRelcacheByRelid(Oid relid);
76
77extern void CacheInvalidateRelSync(Oid relid);
78
79extern void CacheInvalidateRelSyncAll(void);
80
81extern void CacheInvalidateSmgr(RelFileLocatorBackend rlocator);
82
83extern void CacheInvalidateRelmap(Oid databaseId);
84
85extern void CacheRegisterSyscacheCallback(int cacheid,
86 SyscacheCallbackFunction func,
87 Datum arg);
88
89extern void CacheRegisterRelcacheCallback(RelcacheCallbackFunction func,
90 Datum arg);
91
92extern void CacheRegisterRelSyncCallback(RelSyncCallbackFunction func,
93 Datum arg);
94
95extern void CallSyscacheCallbacks(int cacheid, uint32 hashvalue);
96
97extern void CallRelSyncCallbacks(Oid relid);
98
99extern void InvalidateSystemCaches(void);
100extern void InvalidateSystemCachesExtended(bool debug_discard);
101
102extern void LogLogicalInvalidations(void);
103#endif /* INVAL_H */
#define PGDLLIMPORT
Definition: c.h:1319
uint32_t uint32
Definition: c.h:538
void PostPrepare_Inval(void)
Definition: inval.c:993
void InvalidateSystemCachesExtended(bool debug_discard)
Definition: inval.c:785
void CallRelSyncCallbacks(Oid relid)
Definition: inval.c:1916
void CacheInvalidateRelSyncAll(void)
Definition: inval.c:1720
void LogLogicalInvalidations(void)
Definition: inval.c:1935
void CacheInvalidateHeapTupleInplace(Relation relation, HeapTuple tuple, HeapTuple newtuple)
Definition: inval.c:1588
void(* SyscacheCallbackFunction)(Datum arg, int cacheid, uint32 hashvalue)
Definition: inval.h:41
void AcceptInvalidationMessages(void)
Definition: inval.c:930
void CacheInvalidateRelmap(Oid databaseId)
Definition: inval.c:1785
PGDLLIMPORT int debug_discard_caches
Definition: inval.c:260
void CacheInvalidateCatalog(Oid catalogId)
Definition: inval.c:1608
void(* RelcacheCallbackFunction)(Datum arg, Oid relid)
Definition: inval.h:42
void CallSyscacheCallbacks(int cacheid, uint32 hashvalue)
Definition: inval.c:1894
void CacheInvalidateRelcache(Relation relation)
Definition: inval.c:1631
void CacheInvalidateRelcacheByRelid(Oid relid)
Definition: inval.c:1687
void InvalidateSystemCaches(void)
Definition: inval.c:916
void AtEOXact_Inval(bool isCommit)
Definition: inval.c:1199
void(* RelSyncCallbackFunction)(Datum arg, Oid relid)
Definition: inval.h:43
void CacheInvalidateSmgr(RelFileLocatorBackend rlocator)
Definition: inval.c:1751
void AtEOSubXact_Inval(bool isCommit)
Definition: inval.c:1310
void PreInplace_Inval(void)
Definition: inval.c:1250
void CommandEndInvalidationMessages(void)
Definition: inval.c:1409
void AtInplace_Inval(void)
Definition: inval.c:1263
void CacheRegisterRelcacheCallback(RelcacheCallbackFunction func, Datum arg)
Definition: inval.c:1854
void CacheRegisterRelSyncCallback(RelSyncCallbackFunction func, Datum arg)
Definition: inval.c:1875
void ForgetInplace_Inval(void)
Definition: inval.c:1286
void CacheInvalidateRelSync(Oid relid)
Definition: inval.c:1708
void CacheInvalidateHeapTuple(Relation relation, HeapTuple tuple, HeapTuple newtuple)
Definition: inval.c:1571
void CacheInvalidateRelcacheByTuple(HeapTuple classTuple)
Definition: inval.c:1665
void CacheInvalidateRelcacheAll(void)
Definition: inval.c:1654
void CacheRegisterSyscacheCallback(int cacheid, SyscacheCallbackFunction func, Datum arg)
Definition: inval.c:1812
void * arg
uint64_t Datum
Definition: postgres.h:70
unsigned int Oid
Definition: postgres_ext.h:32
Definition: rel.h:56

AltStyle によって変換されたページ (->オリジナル) /