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

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * rel.c
  4.  *   POSTGRES relation descriptor code.
  5.  *
  6.  * Copyright (c) 1994, Regents of the University of California
  7.  *
  8.  *
  9.  * IDENTIFICATION
  10.  *   $Header: /usr/local/cvsroot/pgsql/src/backend/utils/cache/rel.c,v 1.5.2.1 1999/08/02 05:25:00 scrappy Exp $
  11.  *
  12.  *-------------------------------------------------------------------------
  13.  */
  14. /* #define RELREFDEBUG 1 */
  15. #include "postgres.h"
  16. #include "access/istrat.h"
  17. /*
  18.  * RelationIsValid is now a macro in rel.h -cim 4/27/91
  19.  *
  20.  * Many of the RelationGet...() functions are now macros in rel.h
  21.  * -mer 3/2/92
  22.  */
  23. /*
  24.  * RelationGetIndexStrategy
  25.  * Returns index strategy for a relation.
  26.  *
  27.  * Note:
  28.  * Assumes relation descriptor is valid.
  29.  * Assumes relation descriptor is for an index relation.
  30.  */
  31. IndexStrategy
  32. RelationGetIndexStrategy(Relation relation)
  33. {
  34. return relation->rd_istrat;
  35. }
  36. /*
  37.  * RelationSetIndexSupport
  38.  * Sets index strategy and support info for a relation.
  39.  *
  40.  * Note:
  41.  * Assumes relation descriptor is a valid pointer to sufficient space.
  42.  * Assumes index strategy is valid.  Assumes support is valid if non-
  43.  * NULL.
  44.  */
  45. /* ----------------
  46.  * RelationSetIndexSupport
  47.  *
  48.  * This routine saves two pointers -- one to the IndexStrategy, and
  49.  * one to the RegProcs that support the indexed access method.  These
  50.  * pointers are stored in the space following the attribute data in the
  51.  * reldesc.
  52.  *
  53.  *  NEW:  the index strategy and support are now stored in real fields
  54.  *    at the end of the structure   - jolly
  55.  * ----------------
  56.  */
  57. void
  58. RelationSetIndexSupport(Relation relation,
  59. IndexStrategy strategy,
  60. RegProcedure *support)
  61. {
  62. Assert(PointerIsValid(relation));
  63. Assert(IndexStrategyIsValid(strategy));
  64. relation->rd_istrat = strategy;
  65. relation->rd_support = support;
  66. }