1 /*-------------------------------------------------------------------------
4 * POSTGRES "time" qualification definitions.
7 * Copyright (c) 1994, Regents of the University of California
9 * $Id: tqual.h,v 1.12 1998/04/24 14:43:33 momjian Exp $
11 *-------------------------------------------------------------------------
16 #include <access/htup.h>
18 extern TransactionId HeapSpecialTransactionId;
19 extern CommandId HeapSpecialCommandId;
22 * HeapTupleSatisfiesVisibility --
23 * True iff heap tuple satsifies a time qual.
26 * Assumes heap tuple is valid.
28 #define HeapTupleSatisfiesVisibility(tuple, seeself) \
30 TransactionIdEquals((tuple)->t_xmax, AmiTransactionId) ? \
34 ((seeself) == true || heapisoverride()) ? \
35 HeapTupleSatisfiesItself(tuple) \
37 HeapTupleSatisfiesNow(tuple) \
41 #define heapisoverride() \
43 (!TransactionIdIsValid(HeapSpecialTransactionId)) ? \
47 (!TransactionIdEquals(GetCurrentTransactionId(), \
48 HeapSpecialTransactionId) || \
49 GetCurrentCommandId() != HeapSpecialCommandId) ? \
51 HeapSpecialTransactionId = InvalidTransactionId, \
59 extern bool HeapTupleSatisfiesItself(HeapTuple tuple);
60 extern bool HeapTupleSatisfiesNow(HeapTuple tuple);
62 extern void setheapoverride(bool on);