attnum.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:1k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * attnum.h
  4.  *   POSTGRES attribute number definitions.
  5.  *
  6.  *
  7.  * Copyright (c) 1994, Regents of the University of California
  8.  *
  9.  * $Id: attnum.h,v 1.10 1999/05/25 16:13:26 momjian Exp $
  10.  *
  11.  *-------------------------------------------------------------------------
  12.  */
  13. #ifndef ATTNUM_H
  14. #define ATTNUM_H
  15. /*
  16.  * user defined attribute numbers start at 1. -ay 2/95
  17.  */
  18. typedef int16 AttrNumber;
  19. #define InvalidAttrNumber 0
  20. /* ----------------
  21.  * support macros
  22.  * ----------------
  23.  */
  24. /*
  25.  * AttributeNumberIsValid
  26.  * True iff the attribute number is valid.
  27.  */
  28. #define AttributeNumberIsValid(attributeNumber) 
  29. ((bool) ((attributeNumber) != InvalidAttrNumber))
  30. /*
  31.  * AttrNumberIsForUserDefinedAttr
  32.  * True iff the attribute number corresponds to an user defined attribute.
  33.  */
  34. #define AttrNumberIsForUserDefinedAttr(attributeNumber) 
  35. ((bool) ((attributeNumber) > 0))
  36. /*
  37.  * AttrNumberGetAttrOffset
  38.  * Returns the attribute offset for an attribute number.
  39.  *
  40.  * Note:
  41.  * Assumes the attribute number is for an user defined attribute.
  42.  */
  43. #define AttrNumberGetAttrOffset(attNum) 
  44. AssertMacro(AttrNumberIsForUserDefinedAttr(attNum)), 
  45. ((attNum) - 1) 
  46. )
  47. /*
  48.  * AttributeOffsetGetAttributeNumber
  49.  * Returns the attribute number for an attribute offset.
  50.  */
  51. #define AttrOffsetGetAttrNumber(attributeOffset) 
  52.  ((AttrNumber) (1 + attributeOffset))
  53. #endif  /* ATTNUM_H */