Disallow empty passwords in LDAP authentication, the same way
[PostgreSQL.git] / src / include / parser / parse_relation.h
blobf6eaac4759626ac361e4fe620d6232cc18dca2a6
1 /*-------------------------------------------------------------------------
3 * parse_relation.h
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
10 * $PostgreSQL$
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,
23 const char *refname,
24 int location,
25 int *sublevels_up);
26 extern CommonTableExpr *scanNameSpaceForCTE(ParseState *pstate,
27 const char *refname,
28 Index *ctelevelsup);
29 extern void checkNameSpaceConflicts(ParseState *pstate, List *namespace1,
30 List *namespace2);
31 extern int RTERangeTablePosn(ParseState *pstate,
32 RangeTblEntry *rte,
33 int *sublevels_up);
34 extern RangeTblEntry *GetRTEByRangeTablePosn(ParseState *pstate,
35 int varno,
36 int sublevels_up);
37 extern CommonTableExpr *GetCTEForRTE(ParseState *pstate, RangeTblEntry *rte,
38 int rtelevelsup);
39 extern Node *scanRTEForColumn(ParseState *pstate, RangeTblEntry *rte,
40 char *colname, int location);
41 extern Node *colNameToVar(ParseState *pstate, char *colname, bool localonly,
42 int location);
43 extern Node *qualifiedNameToVar(ParseState *pstate,
44 char *schemaname,
45 char *refname,
46 char *colname,
47 bool implicitRTEOK,
48 int location);
49 extern void markVarForSelectPriv(ParseState *pstate, Var *var,
50 RangeTblEntry *rte);
51 extern Relation parserOpenTable(ParseState *pstate, const RangeVar *relation,
52 int lockmode);
53 extern RangeTblEntry *addRangeTableEntry(ParseState *pstate,
54 RangeVar *relation,
55 Alias *alias,
56 bool inh,
57 bool inFromCl);
58 extern RangeTblEntry *addRangeTableEntryForRelation(ParseState *pstate,
59 Relation rel,
60 Alias *alias,
61 bool inh,
62 bool inFromCl);
63 extern RangeTblEntry *addRangeTableEntryForSubquery(ParseState *pstate,
64 Query *subquery,
65 Alias *alias,
66 bool inFromCl);
67 extern RangeTblEntry *addRangeTableEntryForFunction(ParseState *pstate,
68 char *funcname,
69 Node *funcexpr,
70 RangeFunction *rangefunc,
71 bool inFromCl);
72 extern RangeTblEntry *addRangeTableEntryForValues(ParseState *pstate,
73 List *exprs,
74 Alias *alias,
75 bool inFromCl);
76 extern RangeTblEntry *addRangeTableEntryForJoin(ParseState *pstate,
77 List *colnames,
78 JoinType jointype,
79 List *aliasvars,
80 Alias *alias,
81 bool inFromCl);
82 extern RangeTblEntry *addRangeTableEntryForCTE(ParseState *pstate,
83 CommonTableExpr *cte,
84 Index levelsup,
85 Alias *alias,
86 bool inFromCl);
87 extern void addRTEtoQuery(ParseState *pstate, RangeTblEntry *rte,
88 bool addToJoinList,
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 */