PostgreSQL Source Code git master
Loading...
Searching...
No Matches
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-2026, 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"
19#include "utils/relcache.h"
20#include "utils/syscache.h"
21
23
24#define MIN_DEBUG_DISCARD_CACHES 0
25
26#ifdef DISCARD_CACHES_ENABLED
27 /* Set default based on older compile-time-only cache clobber macros */
28#if defined(CLOBBER_CACHE_RECURSIVELY)
29#define DEFAULT_DEBUG_DISCARD_CACHES 3
30#elif defined(CLOBBER_CACHE_ALWAYS)
31#define DEFAULT_DEBUG_DISCARD_CACHES 1
32#else
33#define DEFAULT_DEBUG_DISCARD_CACHES 0
34#endif
35#define MAX_DEBUG_DISCARD_CACHES 5
36#else /* not DISCARD_CACHES_ENABLED */
37#define DEFAULT_DEBUG_DISCARD_CACHES 0
38#define MAX_DEBUG_DISCARD_CACHES 0
39#endif /* not DISCARD_CACHES_ENABLED */
40
41
43 uint32 hashvalue);
46
47
48extern void AcceptInvalidationMessages(void);
49
50extern void AtEOXact_Inval(bool isCommit);
51
52extern void PreInplace_Inval(void);
53extern void AtInplace_Inval(void);
54extern void ForgetInplace_Inval(void);
55
56extern void AtEOSubXact_Inval(bool isCommit);
57
58extern void PostPrepare_Inval(void);
59
60extern void CommandEndInvalidationMessages(void);
61
62extern void CacheInvalidateHeapTuple(Relation relation,
63 HeapTuple tuple,
64 HeapTuple newtuple);
65extern void CacheInvalidateHeapTupleInplace(Relation relation,
67
68extern void CacheInvalidateCatalog(Oid catalogId);
69
70extern void CacheInvalidateRelcache(Relation relation);
71
72extern void CacheInvalidateRelcacheAll(void);
73
75
76extern void CacheInvalidateRelcacheByRelid(Oid relid);
77
78extern void CacheInvalidateRelSync(Oid relid);
79
80extern void CacheInvalidateRelSyncAll(void);
81
82extern void CacheInvalidateSmgr(RelFileLocatorBackend rlocator);
83
84extern void CacheInvalidateRelmap(Oid databaseId);
85
88 Datum arg);
89
91 Datum arg);
92
94 Datum arg);
95
97
98extern void CallRelSyncCallbacks(Oid relid);
99
100extern void InvalidateSystemCaches(void);
102
103extern void LogLogicalInvalidations(void);
104#endif /* INVAL_H */
#define PGDLLIMPORT
Definition c.h:1377
uint32_t uint32
Definition c.h:579
Datum arg
Definition elog.c:1322
void PostPrepare_Inval(void)
Definition inval.c:993
void InvalidateSystemCachesExtended(bool debug_discard)
Definition inval.c:785
void CallRelSyncCallbacks(Oid relid)
Definition inval.c:1920
void CacheInvalidateRelSyncAll(void)
Definition inval.c:1724
void CallSyscacheCallbacks(SysCacheIdentifier cacheid, uint32 hashvalue)
Definition inval.c:1898
void LogLogicalInvalidations(void)
Definition inval.c:1939
void AcceptInvalidationMessages(void)
Definition inval.c:930
void CacheInvalidateRelmap(Oid databaseId)
Definition inval.c:1789
PGDLLIMPORT int debug_discard_caches
Definition inval.c:260
void CacheInvalidateCatalog(Oid catalogId)
Definition inval.c:1612
void(* RelcacheCallbackFunction)(Datum arg, Oid relid)
Definition inval.h:44
void CacheRegisterSyscacheCallback(SysCacheIdentifier cacheid, SyscacheCallbackFunction func, Datum arg)
Definition inval.c:1816
void CacheInvalidateRelcache(Relation relation)
Definition inval.c:1635
void CacheInvalidateRelcacheByRelid(Oid relid)
Definition inval.c:1691
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:45
void CacheInvalidateSmgr(RelFileLocatorBackend rlocator)
Definition inval.c:1755
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 CacheInvalidateHeapTupleInplace(Relation relation, HeapTuple key_equivalent_tuple)
Definition inval.c:1593
void AtInplace_Inval(void)
Definition inval.c:1263
void CacheRegisterRelcacheCallback(RelcacheCallbackFunction func, Datum arg)
Definition inval.c:1858
void CacheRegisterRelSyncCallback(RelSyncCallbackFunction func, Datum arg)
Definition inval.c:1879
void ForgetInplace_Inval(void)
Definition inval.c:1286
void CacheInvalidateRelSync(Oid relid)
Definition inval.c:1712
void CacheInvalidateHeapTuple(Relation relation, HeapTuple tuple, HeapTuple newtuple)
Definition inval.c:1571
void CacheInvalidateRelcacheByTuple(HeapTuple classTuple)
Definition inval.c:1669
void CacheInvalidateRelcacheAll(void)
Definition inval.c:1658
void(* SyscacheCallbackFunction)(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
Definition inval.h:42
uint64_t Datum
Definition postgres.h:70
unsigned int Oid
static int fb(int x)