OSDN Git Service

First phase of SCHEMA changes, concentrating on fixing the grammar and
[pg-rex/syncrep.git] / src / include / parser / parse_relation.h
1 /*-------------------------------------------------------------------------
2  *
3  * parse_relation.h
4  *        prototypes for parse_relation.c.
5  *
6  *
7  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * $Id: parse_relation.h,v 1.30 2002/03/21 16:02:05 tgl Exp $
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef PARSE_RELATION_H
15 #define PARSE_RELATION_H
16
17 #include "parser/parse_node.h"
18
19 extern RangeTblEntry *refnameRangeTblEntry(ParseState *pstate,
20                                                 char *refname,
21                                                 int *sublevels_up);
22 extern void checkNameSpaceConflicts(ParseState *pstate, Node *namespace1,
23                                                 Node *namespace2);
24 extern int RTERangeTablePosn(ParseState *pstate,
25                                   RangeTblEntry *rte,
26                                   int *sublevels_up);
27 extern Node *colnameToVar(ParseState *pstate, char *colname);
28 extern Node *qualifiedNameToVar(ParseState *pstate, char *refname,
29                                    char *colname, bool implicitRTEOK);
30 extern RangeTblEntry *addRangeTableEntry(ParseState *pstate,
31                                    char *relname,
32                                    Alias *alias,
33                                    bool inh,
34                                    bool inFromCl);
35 extern RangeTblEntry *addRangeTableEntryForSubquery(ParseState *pstate,
36                                                           Query *subquery,
37                                                           Alias *alias,
38                                                           bool inFromCl);
39 extern RangeTblEntry *addRangeTableEntryForJoin(ParseState *pstate,
40                                                   List *colnames,
41                                                   JoinType jointype,
42                                                   List *coltypes,
43                                                   List *coltypmods,
44                                                   List *leftcols,
45                                                   List *rightcols,
46                                                   Alias *alias,
47                                                   bool inFromCl);
48 extern void addRTEtoQuery(ParseState *pstate, RangeTblEntry *rte,
49                           bool addToJoinList, bool addToNameSpace);
50 extern RangeTblEntry *addImplicitRTE(ParseState *pstate, char *relname);
51 extern void expandRTE(ParseState *pstate, RangeTblEntry *rte,
52                   List **colnames, List **colvars);
53 extern List *expandRelAttrs(ParseState *pstate, RangeTblEntry *rte);
54 extern int      attnameAttNum(Relation rd, char *a);
55 extern Name attnumAttName(Relation rd, int attid);
56 extern Oid      attnumTypeId(Relation rd, int attid);
57
58 #endif   /* PARSE_RELATION_H */