1 /*-------------------------------------------------------------------------
4 * handle clauses in parser
7 * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
12 *-------------------------------------------------------------------------
14 #ifndef PARSE_CLAUSE_H
15 #define PARSE_CLAUSE_H
17 #include "parser/parse_node.h"
19 extern void transformFromClause(ParseState
*pstate
, List
*frmList
);
20 extern int setTargetTable(ParseState
*pstate
, RangeVar
*relation
,
21 bool inh
, bool alsoSource
, AclMode requiredPerms
);
22 extern bool interpretInhOption(InhOption inhOpt
);
23 extern bool interpretOidsOption(List
*defList
);
25 extern Node
*transformWhereClause(ParseState
*pstate
, Node
*clause
,
26 const char *constructName
);
27 extern Node
*transformLimitClause(ParseState
*pstate
, Node
*clause
,
28 const char *constructName
);
29 extern List
*transformGroupClause(ParseState
*pstate
, List
*grouplist
,
30 List
**targetlist
, List
*sortClause
);
31 extern List
*transformSortClause(ParseState
*pstate
, List
*orderlist
,
32 List
**targetlist
, bool resolveUnknown
);
33 extern List
*transformDistinctClause(ParseState
*pstate
,
34 List
**targetlist
, List
*sortClause
);
35 extern List
*transformDistinctOnClause(ParseState
*pstate
, List
*distinctlist
,
36 List
**targetlist
, List
*sortClause
);
38 extern Index
assignSortGroupRef(TargetEntry
*tle
, List
*tlist
);
39 extern bool targetIsInSortList(TargetEntry
*tle
, Oid sortop
, List
*sortList
);
41 #endif /* PARSE_CLAUSE_H */