snapmgr.h 1.6 KB
Newer Older
1 2
/*-------------------------------------------------------------------------
 *
3 4
 * snapmgr.h
 *	  POSTGRES snapshot manager
5
 *
6
 * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
7 8
 * Portions Copyright (c) 1994, Regents of the University of California
 *
9
 * src/include/utils/snapmgr.h
10 11 12
 *
 *-------------------------------------------------------------------------
 */
13 14
#ifndef SNAPMGR_H
#define SNAPMGR_H
15

A
Alvaro Herrera 已提交
16
#include "fmgr.h"
17
#include "utils/resowner.h"
A
Alvaro Herrera 已提交
18
#include "utils/snapshot.h"
19 20


21
extern bool FirstSnapshotSet;
22 23 24 25 26 27 28

extern TransactionId TransactionXmin;
extern TransactionId RecentXmin;
extern TransactionId RecentGlobalXmin;

extern Snapshot GetTransactionSnapshot(void);
extern Snapshot GetLatestSnapshot(void);
29 30 31
extern void SnapshotSetCommandId(CommandId curcid);

extern void PushActiveSnapshot(Snapshot snapshot);
32 33
extern void PushCopiedSnapshot(Snapshot snapshot);
extern void UpdateActiveSnapshotCommandId(void);
34 35 36 37 38 39
extern void PopActiveSnapshot(void);
extern Snapshot GetActiveSnapshot(void);
extern bool ActiveSnapshotSet(void);

extern Snapshot RegisterSnapshot(Snapshot snapshot);
extern void UnregisterSnapshot(Snapshot snapshot);
40 41
extern Snapshot RegisterSnapshotOnOwner(Snapshot snapshot, ResourceOwner owner);
extern void UnregisterSnapshotFromOwner(Snapshot snapshot, ResourceOwner owner);
42 43 44 45

extern void AtSubCommit_Snapshot(int level);
extern void AtSubAbort_Snapshot(int level);
extern void AtEOXact_Snapshot(bool isCommit);
46

47 48 49 50 51
extern Datum pg_export_snapshot(PG_FUNCTION_ARGS);
extern void ImportSnapshot(const char *idstr);
extern bool XactHasExportedSnapshots(void);
extern void DeleteAllExportedSnapshotFiles(void);

52
#endif   /* SNAPMGR_H */