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

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * internal.h
  4.  *   Definitions required throughout the query optimizer.
  5.  *
  6.  *
  7.  * Copyright (c) 1994, Regents of the University of California
  8.  *
  9.  * $Id: internal.h,v 1.21 1999/07/07 09:27:28 momjian Exp $
  10.  *
  11.  *-------------------------------------------------------------------------
  12.  */
  13. #ifndef INTERNAL_H
  14. #define INTERNAL_H
  15. /*
  16.  * ---------- SHARED MACROS
  17.  *
  18.  * Macros common to modules for creating, accessing, and modifying
  19.  * query tree and query plan components.
  20.  * Shared with the executor.
  21.  *
  22.  */
  23. /*
  24.  * System-dependent tuning constants
  25.  *
  26.  */
  27. #define _CPU_PAGE_WEIGHT_  0.033  /* CPU-heap-to-page cost weighting factor */
  28. #define _CPU_INDEX_PAGE_WEIGHT_ 0.017 /* CPU-index-to-page cost
  29.  * weighting factor */
  30. #define _MAX_KEYS_    INDEX_MAX_KEYS /* maximum number of keys in an
  31.  * index */
  32. #define _TID_SIZE_    6 /* sizeof(itemid) (from ../h/itemid.h) */
  33. /*
  34.  * Size estimates
  35.  *
  36.  */
  37. /*    The cost of sequentially scanning a materialized temporary relation
  38.  */
  39. #define _NONAME_SCAN_COST_ 10
  40. /*    The number of pages and tuples in a materialized relation
  41.  */
  42. #define _NONAME_RELATION_PAGES_ 1
  43. #define _NONAME_RELATION_TUPLES_ 10
  44. /*    The length of a variable-length field in bytes
  45.  */
  46. #define _DEFAULT_ATTRIBUTE_WIDTH_ (2 * _TID_SIZE_)
  47. /*
  48.  * Flags and identifiers
  49.  *
  50.  */
  51. /*    Identifier for (sort) temp relations   */
  52. /* used to be -1 */
  53. #define _NONAME_RELATION_ID_  InvalidOid
  54. /*    Identifier for invalid relation OIDs and attribute numbers for use by
  55.  *    selectivity functions
  56.  */
  57. #define _SELEC_VALUE_UNKNOWN_ (-1)
  58. /*    Flag indicating that a clause constant is really a parameter (or other
  59.  * non-constant?), a non-parameter, or a constant on the right side
  60.  * of the clause.
  61.  */
  62. #define _SELEC_NOT_CONSTANT_   0
  63. #define _SELEC_IS_CONSTANT_    1
  64. #define _SELEC_CONSTANT_LEFT_  0
  65. #define _SELEC_CONSTANT_RIGHT_ 2
  66. /* #define deactivate_joininfo(joininfo) joininfo->inactive=true*/
  67. /*#define joininfo_inactive(joininfo) joininfo->inactive */
  68. /* GEQO switch according to number of relations in a query */
  69. #define GEQO_RELS 11
  70. #endif  /* INTERNAL_H */