1 /*------------------------------------------------------------------------- 2 * 3 * inval.h 4 * POSTGRES cache invalidation dispatcher definitions. 5 * 6 * 7 * Portions Copyright (c) 1996-2016, 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 AtPrepare_Inval(void); 33 34 extern void PostPrepare_Inval(void); 35 36 extern void CommandEndInvalidationMessages(void); 37 38 extern void CacheInvalidateHeapTuple(Relation relation, 39 HeapTuple tuple, 40 HeapTuple newtuple); 41 42 extern void CacheInvalidateCatalog(Oid catalogId); 43 44 extern void CacheInvalidateRelcache(Relation relation); 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 extern void InvalidateSystemCachesExtended(bool debug_discard); 65 #endif /* INVAL_H */ 66