diff options
author | Marc G. Fournier <scrappy@hub.org> | 1996-07-09 06:22:35 +0000 |
---|---|---|
committer | Marc G. Fournier <scrappy@hub.org> | 1996-07-09 06:22:35 +0000 |
commit | d31084e9d1118b25fd16580d9d8c2924b5740dff (patch) | |
tree | 3179e66307d54df9c7b966543550e601eb55e668 /src/backend/parser/parse_query.h | |
download | postgresql-PG95-1_01.tar.gz postgresql-PG95-1_01.zip |
Postgres95 1.01 Distribution - Virgin SourcesPG95-1_01
Diffstat (limited to 'src/backend/parser/parse_query.h')
-rw-r--r-- | src/backend/parser/parse_query.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/backend/parser/parse_query.h b/src/backend/parser/parse_query.h new file mode 100644 index 00000000000..d9541c56cd4 --- /dev/null +++ b/src/backend/parser/parse_query.h @@ -0,0 +1,72 @@ +/*------------------------------------------------------------------------- + * + * parse_query.h-- + * prototypes for parse_query.c. + * + * + * Copyright (c) 1994, Regents of the University of California + * + * $Id: parse_query.h,v 1.1.1.1 1996/07/09 06:21:40 scrappy Exp $ + * + *------------------------------------------------------------------------- + */ +#ifndef PARSE_QUERY_H +#define PARSE_QUERY_H + +#include "nodes/pg_list.h" +#include "nodes/parsenodes.h" +#include "parser/catalog_utils.h" +#include "parser/parse_state.h" + +typedef struct QueryTreeList { + int len; /* number of queries */ + Query** qtrees; +} QueryTreeList; + +extern int RangeTablePosn(List *rtable, char *rangevar); +extern char *VarnoGetRelname(ParseState *pstate, int vnum); +extern RangeTblEntry *makeRangeTableEntry(char *relname, bool inh, + TimeRange *timeRange, char *refname); +extern List *expandAll(ParseState *pstate, char *relname, int *this_resno); +extern TimeQual makeTimeRange(char *datestring1, char *datestring2, + int timecode); +extern Expr *make_op(char *opname, Node *ltree, Node *rtree); + +extern int find_atttype(Oid relid, char *attrname); +extern Var *make_var(ParseState *pstate, + char *relname, char *attrname, int *type_id); +extern ArrayRef *make_array_ref(Node *array, List *indirection); +extern ArrayRef *make_array_set(Expr *target_expr, List *upperIndexpr, + List *lowerIndexpr, Expr *expr); +extern Const *make_const(Value *value); + +extern void param_type_init(Oid* typev, int nargs); +extern Oid param_type(int t); + +/* parser.c (was ylib.c) */ +extern QueryTreeList *parser(char *str, Oid *typev, int nargs); +extern Node *parser_typecast(Value *expr, TypeName *typename, int typlen); +extern Node *parser_typecast2(Node *expr, int exprType, Type tp, int typlen); +extern Aggreg *ParseAgg(char *aggname, Oid basetype, Node *target); + +/* + * analyze.c + */ + +#if 0 +extern List *p_rtable; +extern int NumLevels; +#endif + +Oid exprType(Node *expr); +ParseState* makeParseState(); +QueryTreeList *parse_analyze(List *querytree_list); + +/* define in parse_query.c, used in gram.y */ +extern Oid *param_type_info; +extern int pfunc_num_args; + +/* useful macros */ +#define ISCOMPLEX(type) (typeid_get_relid((Oid)type) ? true : false) + +#endif /* PARSE_QUERY_H */ |