]> granicus.if.org Git - postgresql/blob - src/include/utils/snapmgr.h
Improve hash_create's API for selecting simple-binary-key hash functions.
[postgresql] / src / include / utils / snapmgr.h
1 /*-------------------------------------------------------------------------
2  *
3  * snapmgr.h
4  *        POSTGRES snapshot manager
5  *
6  * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
7  * Portions Copyright (c) 1994, Regents of the University of California
8  *
9  * src/include/utils/snapmgr.h
10  *
11  *-------------------------------------------------------------------------
12  */
13 #ifndef SNAPMGR_H
14 #define SNAPMGR_H
15
16 #include "fmgr.h"
17 #include "utils/resowner.h"
18 #include "utils/snapshot.h"
19
20
21 extern bool FirstSnapshotSet;
22
23 extern TransactionId TransactionXmin;
24 extern TransactionId RecentXmin;
25 extern TransactionId RecentGlobalXmin;
26 extern TransactionId RecentGlobalDataXmin;
27
28 extern Snapshot GetTransactionSnapshot(void);
29 extern Snapshot GetLatestSnapshot(void);
30 extern void SnapshotSetCommandId(CommandId curcid);
31
32 extern Snapshot GetCatalogSnapshot(Oid relid);
33 extern Snapshot GetNonHistoricCatalogSnapshot(Oid relid);
34 extern void InvalidateCatalogSnapshot(void);
35
36 extern void PushActiveSnapshot(Snapshot snapshot);
37 extern void PushCopiedSnapshot(Snapshot snapshot);
38 extern void UpdateActiveSnapshotCommandId(void);
39 extern void PopActiveSnapshot(void);
40 extern Snapshot GetActiveSnapshot(void);
41 extern bool ActiveSnapshotSet(void);
42
43 extern Snapshot RegisterSnapshot(Snapshot snapshot);
44 extern void UnregisterSnapshot(Snapshot snapshot);
45 extern Snapshot RegisterSnapshotOnOwner(Snapshot snapshot, ResourceOwner owner);
46 extern void UnregisterSnapshotFromOwner(Snapshot snapshot, ResourceOwner owner);
47
48 extern void AtSubCommit_Snapshot(int level);
49 extern void AtSubAbort_Snapshot(int level);
50 extern void AtEOXact_Snapshot(bool isCommit);
51
52 extern Datum pg_export_snapshot(PG_FUNCTION_ARGS);
53 extern void ImportSnapshot(const char *idstr);
54 extern bool XactHasExportedSnapshots(void);
55 extern void DeleteAllExportedSnapshotFiles(void);
56 extern bool ThereAreNoPriorRegisteredSnapshots(void);
57
58 extern char *ExportSnapshot(Snapshot snapshot);
59
60 /* Support for catalog timetravel for logical decoding */
61 struct HTAB;
62 extern struct HTAB *HistoricSnapshotGetTupleCids(void);
63 extern void SetupHistoricSnapshot(Snapshot snapshot_now, struct HTAB *tuplecids);
64 extern void TeardownHistoricSnapshot(bool is_error);
65 extern bool HistoricSnapshotActive(void);
66
67 #endif   /* SNAPMGR_H */