]> granicus.if.org Git - postgresql/blob - src/include/utils/snapmgr.h
Improve performance of numeric sum(), avg(), stddev(), variance(), etc.
[postgresql] / src / include / utils / snapmgr.h
1 /*-------------------------------------------------------------------------
2  *
3  * snapmgr.h
4  *        POSTGRES snapshot manager
5  *
6  * Portions Copyright (c) 1996-2013, 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
27 extern Snapshot GetTransactionSnapshot(void);
28 extern Snapshot GetLatestSnapshot(void);
29 extern void SnapshotSetCommandId(CommandId curcid);
30
31 extern Snapshot GetCatalogSnapshot(Oid relid);
32 extern void InvalidateCatalogSnapshot(void);
33
34 extern void PushActiveSnapshot(Snapshot snapshot);
35 extern void PushCopiedSnapshot(Snapshot snapshot);
36 extern void UpdateActiveSnapshotCommandId(void);
37 extern void PopActiveSnapshot(void);
38 extern Snapshot GetActiveSnapshot(void);
39 extern bool ActiveSnapshotSet(void);
40
41 extern Snapshot RegisterSnapshot(Snapshot snapshot);
42 extern void UnregisterSnapshot(Snapshot snapshot);
43 extern Snapshot RegisterSnapshotOnOwner(Snapshot snapshot, ResourceOwner owner);
44 extern void UnregisterSnapshotFromOwner(Snapshot snapshot, ResourceOwner owner);
45
46 extern void AtSubCommit_Snapshot(int level);
47 extern void AtSubAbort_Snapshot(int level);
48 extern void AtEOXact_Snapshot(bool isCommit);
49
50 extern Datum pg_export_snapshot(PG_FUNCTION_ARGS);
51 extern void ImportSnapshot(const char *idstr);
52 extern bool XactHasExportedSnapshots(void);
53 extern void DeleteAllExportedSnapshotFiles(void);
54 extern bool ThereAreNoPriorRegisteredSnapshots(void);
55
56 #endif   /* SNAPMGR_H */