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"
19#include "utils/relcache.h"
20
22
23typedef void (*SyscacheCallbackFunction) (Datum arg, int cacheid, uint32 hashvalue);
24typedef void (*RelcacheCallbackFunction) (Datum arg, Oid relid);
25
26
27extern void AcceptInvalidationMessages(void);
28
29extern void AtEOXact_Inval(bool isCommit);
30
31extern void PreInplace_Inval(void);
32extern void AtInplace_Inval(void);
33extern void ForgetInplace_Inval(void);
34
35extern void AtEOSubXact_Inval(bool isCommit);
36
37extern void PostPrepare_Inval(void);
38
39extern void CommandEndInvalidationMessages(void);
40
41extern void CacheInvalidateHeapTuple(Relation relation,
42 HeapTuple tuple,
43 HeapTuple newtuple);
44extern void CacheInvalidateHeapTupleInplace(Relation relation,
45 HeapTuple tuple,
46 HeapTuple newtuple);
47
48extern void CacheInvalidateCatalog(Oid catalogId);
49
50extern void CacheInvalidateRelcache(Relation relation);
51
52extern void CacheInvalidateRelcacheAll(void);
53
54extern void CacheInvalidateRelcacheByTuple(HeapTuple classTuple);
55
56extern void CacheInvalidateRelcacheByRelid(Oid relid);
57
58extern void CacheInvalidateSmgr(RelFileLocatorBackend rlocator);
59
60extern void CacheInvalidateRelmap(Oid databaseId);
61
62extern void CacheRegisterSyscacheCallback(int cacheid,
64 Datum arg);
65
67 Datum arg);
68
69extern void CallSyscacheCallbacks(int cacheid, uint32 hashvalue);
70
71extern void InvalidateSystemCaches(void);
72extern void InvalidateSystemCachesExtended(bool debug_discard);
73
74extern void LogLogicalInvalidations(void);
75#endif /* INVAL_H */
#define PGDLLIMPORT
Definition: c.h:1277
uint32_t uint32
Definition: c.h:488
void PostPrepare_Inval(void)
Definition: inval.c:920
void InvalidateSystemCachesExtended(bool debug_discard)
Definition: inval.c:731
void LogLogicalInvalidations(void)
Definition: inval.c:1792
void CacheInvalidateHeapTupleInplace(Relation relation, HeapTuple tuple, HeapTuple newtuple)
Definition: inval.c:1510
void(* SyscacheCallbackFunction)(Datum arg, int cacheid, uint32 hashvalue)
Definition: inval.h:23
void AcceptInvalidationMessages(void)
Definition: inval.c:863
void CacheInvalidateRelmap(Oid databaseId)
Definition: inval.c:1677
PGDLLIMPORT int debug_discard_caches
Definition: inval.c:258
void CacheInvalidateCatalog(Oid catalogId)
Definition: inval.c:1530
void(* RelcacheCallbackFunction)(Datum arg, Oid relid)
Definition: inval.h:24
void CallSyscacheCallbacks(int cacheid, uint32 hashvalue)
Definition: inval.c:1765
void CacheInvalidateRelcache(Relation relation)
Definition: inval.c:1553
void CacheInvalidateRelcacheByRelid(Oid relid)
Definition: inval.c:1609
void InvalidateSystemCaches(void)
Definition: inval.c:849
void AtEOXact_Inval(bool isCommit)
Definition: inval.c:1126
void CacheInvalidateSmgr(RelFileLocatorBackend rlocator)
Definition: inval.c:1647
void AtEOSubXact_Inval(bool isCommit)
Definition: inval.c:1235
void PreInplace_Inval(void)
Definition: inval.c:1175
void CommandEndInvalidationMessages(void)
Definition: inval.c:1334
void AtInplace_Inval(void)
Definition: inval.c:1188
void CacheRegisterRelcacheCallback(RelcacheCallbackFunction func, Datum arg)
Definition: inval.c:1746
void ForgetInplace_Inval(void)
Definition: inval.c:1211
void CacheInvalidateHeapTuple(Relation relation, HeapTuple tuple, HeapTuple newtuple)
Definition: inval.c:1493
void CacheInvalidateRelcacheByTuple(HeapTuple classTuple)
Definition: inval.c:1587
void CacheInvalidateRelcacheAll(void)
Definition: inval.c:1576
void CacheRegisterSyscacheCallback(int cacheid, SyscacheCallbackFunction func, Datum arg)
Definition: inval.c:1704
void * arg
uintptr_t Datum
Definition: postgres.h:69
unsigned int Oid
Definition: postgres_ext.h:32