📄 tqual.h
字号:
/*------------------------------------------------------------------------- * * tqual.h * POSTGRES "time" qualification definitions. * * Should be moved/renamed... - vadim 07/28/98 * * Copyright (c) 1994, Regents of the University of California * * $Id: tqual.h,v 1.22.2.1 1999/08/02 05:25:26 scrappy Exp $ * *------------------------------------------------------------------------- */#ifndef TQUAL_H#define TQUAL_H#include "access/htup.h"#include "access/xact.h"typedef struct SnapshotData{ TransactionId xmin; /* XID < xmin are visible to me */ TransactionId xmax; /* XID >= xmax are invisible to me */ uint32 xcnt; /* # of xact below */ TransactionId *xip; /* array of xacts in progress */ ItemPointerData tid; /* required for Dirty snapshot -:( */} SnapshotData;typedef SnapshotData *Snapshot;#define SnapshotNow ((Snapshot) 0x0)#define SnapshotSelf ((Snapshot) 0x1)extern Snapshot SnapshotDirty;extern Snapshot QuerySnapshot;extern Snapshot SerializableSnapshot;#define IsSnapshotNow(snapshot) ((Snapshot) snapshot == SnapshotNow)#define IsSnapshotSelf(snapshot) ((Snapshot) snapshot == SnapshotSelf)#define IsSnapshotDirty(snapshot) ((Snapshot) snapshot == SnapshotDirty)extern TransactionId HeapSpecialTransactionId;extern CommandId HeapSpecialCommandId;/* * HeapTupleSatisfiesVisibility * True iff heap tuple satsifies a time qual. * * Note: * Assumes heap tuple is valid. */#define HeapTupleSatisfiesVisibility(tuple, snapshot) \( \ TransactionIdEquals((tuple)->t_data->t_xmax, AmiTransactionId) ? \ false \ : \ ( \ (IsSnapshotSelf(snapshot) || heapisoverride()) ? \ HeapTupleSatisfiesItself((tuple)->t_data) \ : \ ((IsSnapshotDirty(snapshot)) ? \ HeapTupleSatisfiesDirty((tuple)->t_data) \ : \ ((IsSnapshotNow(snapshot)) ? \ HeapTupleSatisfiesNow((tuple)->t_data) \ : \ HeapTupleSatisfiesSnapshot((tuple)->t_data, snapshot) \ ) \ ) \ ) \)#define heapisoverride() \( \ (!TransactionIdIsValid(HeapSpecialTransactionId)) ? \ false \ : \ ( \ (!TransactionIdEquals(GetCurrentTransactionId(), \ HeapSpecialTransactionId) || \ GetCurrentCommandId() != HeapSpecialCommandId) ? \ ( \ HeapSpecialTransactionId = InvalidTransactionId, \ false \ ) \ : \ true \ ) \)#define HeapTupleMayBeUpdated 0#define HeapTupleInvisible 1#define HeapTupleSelfUpdated 2#define HeapTupleUpdated 3#define HeapTupleBeingUpdated 4extern bool HeapTupleSatisfiesItself(HeapTupleHeader tuple);extern bool HeapTupleSatisfiesNow(HeapTupleHeader tuple);extern bool HeapTupleSatisfiesDirty(HeapTupleHeader tuple);extern bool HeapTupleSatisfiesSnapshot(HeapTupleHeader tuple, Snapshot snapshot);extern int HeapTupleSatisfiesUpdate(HeapTuple tuple);extern void setheapoverride(bool on);extern Snapshot GetSnapshotData(bool serializable);extern void SetQuerySnapshot(void);extern void FreeXactSnapshot(void);#endif /* TQUAL_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -