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

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * istrat.h
  4.  *   POSTGRES index strategy definitions.
  5.  *
  6.  *
  7.  * Copyright (c) 1994, Regents of the University of California
  8.  *
  9.  * $Id: istrat.h,v 1.13.2.1 1999/08/02 05:25:21 scrappy Exp $
  10.  *
  11.  *-------------------------------------------------------------------------
  12.  */
  13. #ifndef ISTRAT_H
  14. #define ISTRAT_H
  15. #include "utils/rel.h"
  16. /*
  17.  * StrategyNumberIsValid
  18.  * True iff the strategy number is valid.
  19.  */
  20. #define StrategyNumberIsValid(strategyNumber) 
  21. ((bool) ((strategyNumber) != InvalidStrategy))
  22. /*
  23.  * StrategyNumberIsInBounds
  24.  * True iff strategy number is within given bounds.
  25.  *
  26.  * Note:
  27.  * Assumes StrategyNumber is an unsigned type.
  28.  * Assumes the bounded interval to be (0,max].
  29.  */
  30. #define StrategyNumberIsInBounds(strategyNumber, maxStrategyNumber) 
  31. ((bool)(InvalidStrategy < (strategyNumber) && 
  32. (strategyNumber) <= (maxStrategyNumber)))
  33. /*
  34.  * StrategyMapIsValid
  35.  * True iff the index strategy mapping is valid.
  36.  */
  37. #define StrategyMapIsValid(map) PointerIsValid(map)
  38. /*
  39.  * IndexStrategyIsValid
  40.  * True iff the index strategy is valid.
  41.  */
  42. #define IndexStrategyIsValid(s) PointerIsValid(s)
  43. extern StrategyMap IndexStrategyGetStrategyMap(IndexStrategy indexStrategy,
  44.   StrategyNumber maxStrategyNum, AttrNumber attrNum);
  45. extern Size AttributeNumberGetIndexStrategySize(AttrNumber maxAttributeNumber,
  46. StrategyNumber maxStrategyNumber);
  47. extern StrategyNumber RelationGetStrategy(Relation relation,
  48.    AttrNumber attributeNumber, StrategyEvaluation evaluation,
  49. RegProcedure procedure);
  50. extern bool RelationInvokeStrategy(Relation relation,
  51.    StrategyEvaluation evaluation, AttrNumber attributeNumber,
  52.    StrategyNumber strategy, Datum left, Datum right);
  53. extern void IndexSupportInitialize(IndexStrategy indexStrategy,
  54.    RegProcedure *indexSupport, Oid indexObjectId,
  55.   Oid accessMethodObjectId, StrategyNumber maxStrategyNumber,
  56.  StrategyNumber maxSupportNumber, AttrNumber maxAttributeNumber);
  57. #endif  /* ISTRAT_H */