59 lines
1.5 KiB
C
59 lines
1.5 KiB
C
/* -------------------------------------------------------------------------
|
|
*
|
|
* attnum.h
|
|
* openGauss attribute number definitions.
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/access/attnum.h
|
|
*
|
|
* -------------------------------------------------------------------------
|
|
*/
|
|
#ifndef ATTNUM_H
|
|
#define ATTNUM_H
|
|
|
|
#include "c.h"
|
|
|
|
/*
|
|
* user defined attribute numbers start at 1. -ay 2/95
|
|
*/
|
|
typedef int16 AttrNumber;
|
|
|
|
#define InvalidAttrNumber 0
|
|
#define MaxAttrNumber 32767
|
|
|
|
/* ----------------
|
|
* support macros
|
|
* ----------------
|
|
*/
|
|
/*
|
|
* AttributeNumberIsValid
|
|
* True iff the attribute number is valid.
|
|
*/
|
|
#define AttributeNumberIsValid(attributeNumber) ((bool)((attributeNumber) != InvalidAttrNumber))
|
|
|
|
/*
|
|
* AttrNumberIsForUserDefinedAttr
|
|
* True iff the attribute number corresponds to an user defined attribute.
|
|
*/
|
|
#define AttrNumberIsForUserDefinedAttr(attributeNumber) ((bool)((attributeNumber) > 0))
|
|
|
|
/*
|
|
* AttrNumberGetAttrOffset
|
|
* Returns the attribute offset for an attribute number.
|
|
*
|
|
* Note:
|
|
* Assumes the attribute number is for an user defined attribute.
|
|
*/
|
|
#define AttrNumberGetAttrOffset(attNum) (AssertMacro(AttrNumberIsForUserDefinedAttr(attNum)), ((attNum)-1))
|
|
|
|
/*
|
|
* AttributeOffsetGetAttributeNumber
|
|
* Returns the attribute number for an attribute offset.
|
|
*/
|
|
#define AttrOffsetGetAttrNumber(attributeOffset) ((AttrNumber)(1 + (attributeOffset)))
|
|
|
|
#endif /* ATTNUM_H */
|