]> granicus.if.org Git - postgresql/blob - src/include/access/attnum.h
Update copyright for 2014
[postgresql] / src / include / access / attnum.h
1 /*-------------------------------------------------------------------------
2  *
3  * attnum.h
4  *        POSTGRES attribute number definitions.
5  *
6  *
7  * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/access/attnum.h
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef ATTNUM_H
15 #define ATTNUM_H
16
17
18 /*
19  * user defined attribute numbers start at 1.   -ay 2/95
20  */
21 typedef int16 AttrNumber;
22
23 #define InvalidAttrNumber               0
24 #define MaxAttrNumber                   32767
25
26 /* ----------------
27  *              support macros
28  * ----------------
29  */
30 /*
31  * AttributeNumberIsValid
32  *              True iff the attribute number is valid.
33  */
34 #define AttributeNumberIsValid(attributeNumber) \
35         ((bool) ((attributeNumber) != InvalidAttrNumber))
36
37 /*
38  * AttrNumberIsForUserDefinedAttr
39  *              True iff the attribute number corresponds to an user defined attribute.
40  */
41 #define AttrNumberIsForUserDefinedAttr(attributeNumber) \
42         ((bool) ((attributeNumber) > 0))
43
44 /*
45  * AttrNumberGetAttrOffset
46  *              Returns the attribute offset for an attribute number.
47  *
48  * Note:
49  *              Assumes the attribute number is for an user defined attribute.
50  */
51 #define AttrNumberGetAttrOffset(attNum) \
52 ( \
53         AssertMacro(AttrNumberIsForUserDefinedAttr(attNum)), \
54         ((attNum) - 1) \
55 )
56
57 /*
58  * AttributeOffsetGetAttributeNumber
59  *              Returns the attribute number for an attribute offset.
60  */
61 #define AttrOffsetGetAttrNumber(attributeOffset) \
62          ((AttrNumber) (1 + (attributeOffset)))
63
64 #endif   /* ATTNUM_H */