PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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"
19#include "utils/relcache.h"
20
22
23typedef void (*SyscacheCallbackFunction) (Datum arg, int cacheid, uint32 hashvalue);
24typedef void (*RelcacheCallbackFunction) (Datum arg, Oid relid);
25typedef void (*RelSyncCallbackFunction) (Datum arg, Oid relid);
26
27
28extern void AcceptInvalidationMessages(void);
29
30extern void AtEOXact_Inval(bool isCommit);
31
32extern void PreInplace_Inval(void);
33extern void AtInplace_Inval(void);
34extern void ForgetInplace_Inval(void);
35
36extern void AtEOSubXact_Inval(bool isCommit);
37
38extern void PostPrepare_Inval(void);
39
40extern void CommandEndInvalidationMessages(void);
41
42extern void CacheInvalidateHeapTuple(Relation relation,
43 HeapTuple tuple,
44 HeapTuple newtuple);
45extern void CacheInvalidateHeapTupleInplace(Relation relation,
46 HeapTuple tuple,
47 HeapTuple newtuple);
48
49extern void CacheInvalidateCatalog(Oid catalogId);
50
51extern void CacheInvalidateRelcache(Relation relation);
52
53extern void CacheInvalidateRelcacheAll(void);
54
55extern void CacheInvalidateRelcacheByTuple(HeapTuple classTuple);
56
57extern void CacheInvalidateRelcacheByRelid(Oid relid);
58
59extern void CacheInvalidateRelSync(Oid relid);
60
61extern void CacheInvalidateRelSyncAll(void);
62
63extern void CacheInvalidateSmgr(RelFileLocatorBackend rlocator);
64
65extern void CacheInvalidateRelmap(Oid databaseId);
66
67extern void CacheRegisterSyscacheCallback(int cacheid,
69 Datum arg);
70
72 Datum arg);
73
75 Datum arg);
76
77extern void CallSyscacheCallbacks(int cacheid, uint32 hashvalue);
78
79extern void CallRelSyncCallbacks(Oid relid);
80
81extern void InvalidateSystemCaches(void);
82extern void InvalidateSystemCachesExtended(bool debug_discard);
83
84extern void LogLogicalInvalidations(void);
85#endif /* INVAL_H */
#define PGDLLIMPORT
Definition: c.h:1291
uint32_t uint32
Definition: c.h:502
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:23
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:24
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:25
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
uintptr_t Datum
Definition: postgres.h:69
unsigned int Oid
Definition: postgres_ext.h:30