1 /*-------------------------------------------------------------------------
4 * prototypes for parse_relation.c.
7 * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
12 *-------------------------------------------------------------------------
14 #ifndef PARSE_RELATION_H
15 #define PARSE_RELATION_H
17 #include "parser/parse_node.h"
19 extern bool add_missing_from
;
21 extern RangeTblEntry
*refnameRangeTblEntry(ParseState
*pstate
,
22 const char *schemaname
,
26 extern CommonTableExpr
*scanNameSpaceForCTE(ParseState
*pstate
,
29 extern void checkNameSpaceConflicts(ParseState
*pstate
, List
*namespace1
,
31 extern int RTERangeTablePosn(ParseState
*pstate
,
34 extern RangeTblEntry
*GetRTEByRangeTablePosn(ParseState
*pstate
,
37 extern CommonTableExpr
*GetCTEForRTE(ParseState
*pstate
, RangeTblEntry
*rte
,
39 extern Node
*scanRTEForColumn(ParseState
*pstate
, RangeTblEntry
*rte
,
40 char *colname
, int location
);
41 extern Node
*colNameToVar(ParseState
*pstate
, char *colname
, bool localonly
,
43 extern Node
*qualifiedNameToVar(ParseState
*pstate
,
49 extern void markVarForSelectPriv(ParseState
*pstate
, Var
*var
,
51 extern Relation
parserOpenTable(ParseState
*pstate
, const RangeVar
*relation
,
53 extern RangeTblEntry
*addRangeTableEntry(ParseState
*pstate
,
58 extern RangeTblEntry
*addRangeTableEntryForRelation(ParseState
*pstate
,
63 extern RangeTblEntry
*addRangeTableEntryForSubquery(ParseState
*pstate
,
67 extern RangeTblEntry
*addRangeTableEntryForFunction(ParseState
*pstate
,
70 RangeFunction
*rangefunc
,
72 extern RangeTblEntry
*addRangeTableEntryForValues(ParseState
*pstate
,
76 extern RangeTblEntry
*addRangeTableEntryForJoin(ParseState
*pstate
,
82 extern RangeTblEntry
*addRangeTableEntryForCTE(ParseState
*pstate
,
87 extern void addRTEtoQuery(ParseState
*pstate
, RangeTblEntry
*rte
,
89 bool addToRelNameSpace
, bool addToVarNameSpace
);
90 extern RangeTblEntry
*addImplicitRTE(ParseState
*pstate
, RangeVar
*relation
);
91 extern void expandRTE(RangeTblEntry
*rte
, int rtindex
, int sublevels_up
,
92 int location
, bool include_dropped
,
93 List
**colnames
, List
**colvars
);
94 extern List
*expandRelAttrs(ParseState
*pstate
, RangeTblEntry
*rte
,
95 int rtindex
, int sublevels_up
, int location
);
96 extern int attnameAttNum(Relation rd
, const char *attname
, bool sysColOK
);
97 extern Name
attnumAttName(Relation rd
, int attid
);
98 extern Oid
attnumTypeId(Relation rd
, int attid
);
100 #endif /* PARSE_RELATION_H */