1 | /*------------------------------------------------------------------------- |
2 | * |
3 | * inval.h |
4 | * POSTGRES cache invalidation dispatcher definitions. |
5 | * |
6 | * |
7 | * Portions Copyright (c) 1996-2019, 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/relfilenode.h" |
19 | #include "utils/relcache.h" |
20 | |
21 | |
22 | typedef void (*SyscacheCallbackFunction) (Datum arg, int cacheid, uint32 hashvalue); |
23 | typedef void (*RelcacheCallbackFunction) (Datum arg, Oid relid); |
24 | |
25 | |
26 | extern void AcceptInvalidationMessages(void); |
27 | |
28 | extern void AtEOXact_Inval(bool isCommit); |
29 | |
30 | extern void AtEOSubXact_Inval(bool isCommit); |
31 | |
32 | extern void PostPrepare_Inval(void); |
33 | |
34 | extern void CommandEndInvalidationMessages(void); |
35 | |
36 | extern void CacheInvalidateHeapTuple(Relation relation, |
37 | HeapTuple tuple, |
38 | HeapTuple newtuple); |
39 | |
40 | extern void CacheInvalidateCatalog(Oid catalogId); |
41 | |
42 | extern void CacheInvalidateRelcache(Relation relation); |
43 | |
44 | extern void CacheInvalidateRelcacheAll(void); |
45 | |
46 | extern void CacheInvalidateRelcacheByTuple(HeapTuple classTuple); |
47 | |
48 | extern void CacheInvalidateRelcacheByRelid(Oid relid); |
49 | |
50 | extern void CacheInvalidateSmgr(RelFileNodeBackend rnode); |
51 | |
52 | extern void CacheInvalidateRelmap(Oid databaseId); |
53 | |
54 | extern void CacheRegisterSyscacheCallback(int cacheid, |
55 | SyscacheCallbackFunction func, |
56 | Datum arg); |
57 | |
58 | extern void CacheRegisterRelcacheCallback(RelcacheCallbackFunction func, |
59 | Datum arg); |
60 | |
61 | extern void CallSyscacheCallbacks(int cacheid, uint32 hashvalue); |
62 | |
63 | extern void InvalidateSystemCaches(void); |
64 | #endif /* INVAL_H */ |
65 | |