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

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * plancat.h
  4.  *   prototypes for plancat.c.
  5.  *
  6.  *
  7.  * Copyright (c) 1994, Regents of the University of California
  8.  *
  9.  * $Id: plancat.h,v 1.11 1999/02/13 23:21:50 momjian Exp $
  10.  *
  11.  *-------------------------------------------------------------------------
  12.  */
  13. #ifndef PLANCAT_H
  14. #define PLANCAT_H
  15. #include <nodes/parsenodes.h>
  16. /*
  17.  * transient data structure to hold return value of index_info. Note that
  18.  * indexkeys, orderOprs and classlist is "null-terminated".
  19.  */
  20. typedef struct IdxInfoRetval
  21. {
  22. Oid relid; /* OID of the index relation (not the OID
  23.  * of the relation being indexed) */
  24. Oid relam; /* OID of the pg_am of this index */
  25. int pages; /* number of pages in the index relation */
  26. int tuples; /* number of tuples in the index relation */
  27. int    *indexkeys; /* keys over which we're indexing */
  28. Oid    *orderOprs; /* operators used for ordering purposes */
  29. Oid    *classlist; /* classes of AM operators */
  30. Oid indproc;
  31. Node    *indpred;
  32. } IdxInfoRetval;
  33. extern void relation_info(Query *root,
  34.   Oid relid,
  35.   bool *hashindex, int *pages,
  36.   int *tuples);
  37. extern bool index_info(Query *root,
  38.    bool first, int relid, IdxInfoRetval *info);
  39. extern Cost restriction_selectivity(Oid functionObjectId,
  40. Oid operatorObjectId,
  41. Oid relationObjectId,
  42. AttrNumber attributeNumber,
  43. char *constValue,
  44. int32 constFlag);
  45. extern void index_selectivity(Oid indid, Oid *classes, List *opnos,
  46.   Oid relid, List *attnos, List *values, List *flags,
  47.   int32 nkeys, float *idxPages, float *idxSelec);
  48. extern Cost join_selectivity(Oid functionObjectId, Oid operatorObjectId,
  49.  Oid relationObjectId1, AttrNumber attributeNumber1,
  50.  Oid relationObjectId2, AttrNumber attributeNumber2);
  51. extern List *find_inheritance_children(Oid inhparent);
  52. #endif  /* PLANCAT_H */