1 /*-------------------------------------------------------------------------
2  *
3  * sdir.h
4  *	  POSTGRES scan direction definitions.
5  *
6  *
7  * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/access/sdir.h
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef SDIR_H
15 #define SDIR_H
16 
17 
18 /*
19  * ScanDirection was an int8 for no apparent reason. I kept the original
20  * values because I'm not sure if I'll break anything otherwise.  -ay 2/95
21  */
22 typedef enum ScanDirection
23 {
24 	BackwardScanDirection = -1,
25 	NoMovementScanDirection = 0,
26 	ForwardScanDirection = 1
27 } ScanDirection;
28 
29 /*
30  * ScanDirectionIsValid
31  *		True iff scan direction is valid.
32  */
33 #define ScanDirectionIsValid(direction) \
34 	((bool) (BackwardScanDirection <= (direction) && \
35 			 (direction) <= ForwardScanDirection))
36 
37 /*
38  * ScanDirectionIsBackward
39  *		True iff scan direction is backward.
40  */
41 #define ScanDirectionIsBackward(direction) \
42 	((bool) ((direction) == BackwardScanDirection))
43 
44 /*
45  * ScanDirectionIsNoMovement
46  *		True iff scan direction indicates no movement.
47  */
48 #define ScanDirectionIsNoMovement(direction) \
49 	((bool) ((direction) == NoMovementScanDirection))
50 
51 /*
52  * ScanDirectionIsForward
53  *		True iff scan direction is forward.
54  */
55 #define ScanDirectionIsForward(direction) \
56 	((bool) ((direction) == ForwardScanDirection))
57 
58 #endif							/* SDIR_H */
59