home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / postgres / postgre3.z / postgre3 / src / lib / H / planner / keys.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-27  |  1.5 KB  |  37 lines

  1. /* $Header: /private/postgres/src/lib/H/planner/RCS/keys.h,v 1.5 1991/11/15 16:22:55 hong Exp $ */
  2.  
  3. #define INNER 65000
  4. #define OUTER 65001
  5.  
  6. /*
  7.  *      1. index key
  8.  *              one of:
  9.  *                      attnum
  10.  *                      (attnum arrayindex)
  11.  *      2. path key
  12.  *              (subkey1 ... subkeyN)
  13.  *                      where subkeyI is a var node
  14.  *              note that the 'Keys field is a list of these
  15.  *      3. join key
  16.  *              (outer-subkey inner-subkey)
  17.  *                      where each subkey is a var node
  18.  *      4. sort key
  19.  *              one of:
  20.  *                      SortKey node
  21.  *                      number
  22.  *                      nil
  23.  *              (may also refer to the 'SortKey field of a SortKey node,
  24.  *               which looks exactly like an index key)
  25.  *
  26.  */
  27.  
  28. extern bool match_indexkey_operand ARGS((LispValue indexkey, Var operand, Rel rel));
  29. extern bool equal_indexkey_var ARGS((LispValue index_key, Var var));
  30. extern LispValue extract_subkey ARGS((JoinKey joinKey, int which_subkey));
  31. extern bool samekeys ARGS((LispValue keys1, LispValue keys2));
  32. extern LispValue collect_index_pathkeys ARGS((LispValue index_keys, LispValue tlist));
  33. extern bool match_sortkeys_pathkeys ARGS((LispValue relid, LispValue sortkeys, LispValue pathkeys));
  34. extern bool equal_sortkey_pathkey ARGS((LispValue relid, LispValue sortkey, LispValue pathkey));
  35. extern bool valid_sortkeys ARGS((LispValue node));
  36. extern bool valid_numkeys ARGS((LispValue sortkeys));
  37.