Update FSM on WAL replay. This is a bit limited; the FSM is only updated
[PostgreSQL.git] / src / include / utils / inval.h
blobc9ed816244915dec3a924ae2ec14670990fc7748
1 /*-------------------------------------------------------------------------
3 * inval.h
4 * POSTGRES cache invalidation dispatcher definitions.
7 * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
10 * $PostgreSQL$
12 *-------------------------------------------------------------------------
14 #ifndef INVAL_H
15 #define INVAL_H
17 #include "access/htup.h"
18 #include "utils/relcache.h"
21 typedef void (*SyscacheCallbackFunction) (Datum arg, int cacheid, ItemPointer tuplePtr);
22 typedef void (*RelcacheCallbackFunction) (Datum arg, Oid relid);
25 extern void AcceptInvalidationMessages(void);
27 extern void AtStart_Inval(void);
29 extern void AtSubStart_Inval(void);
31 extern void AtEOXact_Inval(bool isCommit);
33 extern void AtEOSubXact_Inval(bool isCommit);
35 extern void AtPrepare_Inval(void);
37 extern void PostPrepare_Inval(void);
39 extern void CommandEndInvalidationMessages(void);
41 extern void BeginNonTransactionalInvalidation(void);
43 extern void EndNonTransactionalInvalidation(void);
45 extern void CacheInvalidateHeapTuple(Relation relation, HeapTuple tuple);
47 extern void CacheInvalidateRelcache(Relation relation);
49 extern void CacheInvalidateRelcacheByTuple(HeapTuple classTuple);
51 extern void CacheInvalidateRelcacheByRelid(Oid relid);
53 extern void CacheRegisterSyscacheCallback(int cacheid,
54 SyscacheCallbackFunction func,
55 Datum arg);
57 extern void CacheRegisterRelcacheCallback(RelcacheCallbackFunction func,
58 Datum arg);
60 extern void inval_twophase_postcommit(TransactionId xid, uint16 info,
61 void *recdata, uint32 len);
63 #endif /* INVAL_H */