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

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * pg_index.h
  4.  *   definition of the system "index" relation (pg_index)
  5.  *   along with the relation's initial contents.
  6.  *
  7.  *
  8.  * Copyright (c) 1994, Regents of the University of California
  9.  *
  10.  * $Id: pg_index.h,v 1.12 1999/05/25 16:13:45 momjian Exp $
  11.  *
  12.  * NOTES
  13.  *   the genbki.sh script reads this file and generates .bki
  14.  *   information from the DATA() statements.
  15.  *
  16.  *-------------------------------------------------------------------------
  17.  */
  18. #ifndef PG_INDEX_H
  19. #define PG_INDEX_H
  20. /* ----------------
  21.  * postgres.h contains the system type definintions and the
  22.  * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
  23.  * can be read by both genbki.sh and the C compiler.
  24.  * ----------------
  25.  */
  26. /* ----------------
  27.  * pg_index definition.  cpp turns this into
  28.  * typedef struct FormData_pg_index.  The oid of the index relation
  29.  * is stored in indexrelid; the oid of the indexed relation is stored
  30.  * in indrelid.
  31.  * ----------------
  32.  */
  33. /*
  34.  * it seems that all variable length fields should go at the _end_,
  35.  * because the system cache routines only copy the fields up to the
  36.  * first variable length field.  so I moved indislossy, indhaskeytype,
  37.  * and indisunique before indpred. --djm 8/20/96
  38.  */
  39. CATALOG(pg_index)
  40. {
  41. Oid indexrelid;
  42. Oid indrelid;
  43. Oid indproc; /* registered procedure for functional
  44.  * index */
  45. int28 indkey;
  46. oid8 indclass;
  47. bool indisclustered;
  48. bool indislossy; /* do we fetch false tuples (lossy
  49.  * compression)? */
  50. bool indhaskeytype; /* does key type != attribute type? */
  51. bool indisunique; /* is this a unique index? */
  52. bool indisprimary; /* is this index for primary key */
  53. Oid indreference; /* oid of index of referenced relation (ie
  54.  * - this index for foreign key */
  55. text indpred; /* query plan for partial index predicate */
  56. } FormData_pg_index;
  57. #define INDEX_MAX_KEYS 8 /* maximum number of keys in an index
  58.  * definition */
  59. /* ----------------
  60.  * Form_pg_index corresponds to a pointer to a tuple with
  61.  * the format of pg_index relation.
  62.  * ----------------
  63.  */
  64. typedef FormData_pg_index *Form_pg_index;
  65. /* ----------------
  66.  * compiler constants for pg_index
  67.  * ----------------
  68.  */
  69. #define Natts_pg_index 12
  70. #define Anum_pg_index_indexrelid 1
  71. #define Anum_pg_index_indrelid 2
  72. #define Anum_pg_index_indproc 3
  73. #define Anum_pg_index_indkey 4
  74. #define Anum_pg_index_indclass 5
  75. #define Anum_pg_index_indisclustered 6
  76. #define Anum_pg_index_indislossy 7
  77. #define Anum_pg_index_indhaskeytype 8
  78. #define Anum_pg_index_indisunique 9
  79. #define Anum_pg_index_indisprimary 10
  80. #define Anum_pg_index_indreference 11
  81. #define Anum_pg_index_indpred 12
  82. #endif  /* PG_INDEX_H */