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

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * pos.h
  4.  *   POSTGRES "position" definitions.
  5.  *
  6.  *
  7.  * Copyright (c) 1994, Regents of the University of California
  8.  *
  9.  * $Id: pos.h,v 1.7.2.1 1999/07/30 17:07:17 scrappy Exp $
  10.  *
  11.  *-------------------------------------------------------------------------
  12.  */
  13. #ifndef POS_H
  14. #define POS_H
  15. #include "storage/off.h"
  16. /*
  17.  * a 'position' used to be <pagenumber, offset> in postgres.  this has
  18.  * been changed to just <offset> as the notion of having multiple pages
  19.  * within a block has been removed.
  20.  *
  21.  * the 'offset' abstraction is somewhat confusing. it is NOT a byte
  22.  * offset within the page; instead, it is an offset into the line
  23.  * pointer array contained on every page that store (heap or index)
  24.  * tuples.
  25.  */
  26. typedef bits16 PositionIdData;
  27. typedef PositionIdData *PositionId;
  28. /* ----------------
  29.  * support macros
  30.  * ----------------
  31.  */
  32. /*
  33.  * PositionIdIsValid
  34.  * True iff the position identifier is valid.
  35.  */
  36. #define PositionIdIsValid(positionId) 
  37. PointerIsValid(positionId)
  38. /*
  39.  * PositionIdSetInvalid
  40.  * Make an invalid position.
  41.  */
  42. #define PositionIdSetInvalid(positionId) 
  43. *(positionId) = (bits16) 0
  44. /*
  45.  * PositionIdSet
  46.  * Sets a position identifier to the specified value.
  47.  */
  48. #define PositionIdSet(positionId, offsetNumber) 
  49. *(positionId) = (offsetNumber)
  50. /*
  51.  * PositionIdGetOffsetNumber
  52.  * Retrieve the offset number from a position identifier.
  53.  */
  54. #define PositionIdGetOffsetNumber(positionId) 
  55. ((OffsetNumber) *(positionId))
  56. #endif  /* POS_H */