]> granicus.if.org Git - postgresql/blob - src/include/parser/parse_query.h
More NOT_USEDs
[postgresql] / src / include / parser / parse_query.h
1  /*-------------------------------------------------------------------------
2  *
3  * parse_query.h--
4  *    prototypes for parse_query.c.
5  *
6  *
7  * Copyright (c) 1994, Regents of the University of California
8  *
9  * $Id: parse_query.h,v 1.9 1997/08/20 14:54:26 momjian Exp $
10  *
11  *-------------------------------------------------------------------------
12  */
13 #ifndef PARSE_QUERY_H
14 #define PARSE_QUERY_H
15
16 #include <parser/catalog_utils.h>
17 #include <parser/parse_state.h>
18 #include <nodes/parsenodes.h>
19
20 typedef struct QueryTreeList {
21   int len; /* number of queries */
22   Query** qtrees;
23 } QueryTreeList;
24
25 extern RangeTblEntry *refnameRangeTableEntry(List *rtable, char *refname);
26 extern RangeTblEntry *colnameRangeTableEntry(ParseState *pstate, char *colname);
27 extern int refnameRangeTablePosn(List *rtable, char *refname);
28 extern RangeTblEntry *addRangeTableEntry(ParseState *pstate,
29                                           char *relname, char *refname,
30                                           bool inh, bool inFromCl,
31                                           TimeRange *timeRange);
32 extern List *expandAll(ParseState *pstate, char *relname, char *refname,
33                                                         int *this_resno);
34 extern TimeQual makeTimeRange(char *datestring1, char *datestring2,
35                               int timecode);
36 extern Expr *make_op(char *opname, Node *ltree, Node *rtree);
37
38 extern Oid find_atttype(Oid relid, char *attrname);
39 extern Var *make_var(ParseState *pstate, 
40                      char *relname, char *attrname, Oid *type_id);
41 extern ArrayRef *make_array_ref(Node *array, List *indirection);
42 extern ArrayRef *make_array_set(Expr *target_expr, List *upperIndexpr,
43                          List *lowerIndexpr, Expr *expr);
44 extern Const *make_const(Value *value);
45
46 extern void param_type_init(Oid* typev, int nargs);
47 extern Oid param_type(int t);
48
49 /* parser.c (was ylib.c) */
50 extern QueryTreeList *parser(char *str, Oid *typev, int nargs);
51 extern Node *parser_typecast(Value *expr, TypeName *typename, int typlen);
52 extern Node *parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen);
53 extern Aggreg *ParseAgg(char *aggname, Oid basetype, Node *target);
54 extern void handleTargetColname(ParseState *pstate, char **resname,
55                                         char *refname, char *colname);
56
57 /*
58  * analyze.c
59  */
60
61 Oid exprType(Node *expr);
62 QueryTreeList *parse_analyze(List *querytree_list);
63
64 /* define in parse_query.c, used in gram.y */
65 extern Oid *param_type_info;
66 extern int pfunc_num_args;
67
68 /* useful macros */
69 #define ISCOMPLEX(type) (typeid_get_relid(type) ? true : false)
70
71 #endif /* PARSE_QUERY_H */