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

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * parse_node.h
  4.  *
  5.  *
  6.  * Copyright (c) 1994, Regents of the University of California
  7.  *
  8.  * $Id: parse_node.h,v 1.12 1999/05/13 07:29:19 tgl Exp $
  9.  *
  10.  *-------------------------------------------------------------------------
  11.  */
  12. #ifndef PARSE_NODE_H
  13. #define PARSE_NODE_H
  14. #include <nodes/nodes.h>
  15. #include <nodes/pg_list.h>
  16. #include <nodes/primnodes.h>
  17. #include <nodes/parsenodes.h>
  18. #include <parser/parse_type.h>
  19. #include <utils/rel.h>
  20. /* state information used during parse analysis */
  21. typedef struct ParseState
  22. {
  23. int p_last_resno;
  24. List    *p_rtable;
  25. List    *p_insert_columns;
  26. struct ParseState *parentParseState;
  27. bool p_hasAggs;
  28. bool p_hasSubLinks;
  29. bool p_is_insert;
  30. bool p_is_update;
  31. bool p_is_rule;
  32. bool p_in_where_clause;
  33. Relation p_target_relation;
  34. RangeTblEntry *p_target_rangetblentry;
  35. } ParseState;
  36. extern ParseState *make_parsestate(ParseState *parentParseState);
  37. extern Expr *make_op(char *opname, Node *ltree, Node *rtree);
  38. extern Var *make_var(ParseState *pstate, Oid relid, char *refname,
  39.  char *attrname);
  40. extern ArrayRef *make_array_ref(Node *expr,
  41.    List *indirection);
  42. extern ArrayRef *make_array_set(Expr *target_expr,
  43.    List *upperIndexpr,
  44.    List *lowerIndexpr,
  45.    Expr *expr);
  46. extern Const *make_const(Value *value);
  47. #endif  /* PARSE_NODE_H */