1 | /*------------------------------------------------------------------------- |
2 | * |
3 | * parse_target.h |
4 | * handle target lists |
5 | * |
6 | * |
7 | * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group |
8 | * Portions Copyright (c) 1994, Regents of the University of California |
9 | * |
10 | * src/include/parser/parse_target.h |
11 | * |
12 | *------------------------------------------------------------------------- |
13 | */ |
14 | #ifndef PARSE_TARGET_H |
15 | #define PARSE_TARGET_H |
16 | |
17 | #include "parser/parse_node.h" |
18 | |
19 | |
20 | extern List *transformTargetList(ParseState *pstate, List *targetlist, |
21 | ParseExprKind exprKind); |
22 | extern List *transformExpressionList(ParseState *pstate, List *exprlist, |
23 | ParseExprKind exprKind, bool allowDefault); |
24 | extern void resolveTargetListUnknowns(ParseState *pstate, List *targetlist); |
25 | extern void markTargetListOrigins(ParseState *pstate, List *targetlist); |
26 | extern TargetEntry *transformTargetEntry(ParseState *pstate, |
27 | Node *node, Node *expr, ParseExprKind exprKind, |
28 | char *colname, bool resjunk); |
29 | extern Expr *transformAssignedExpr(ParseState *pstate, Expr *expr, |
30 | ParseExprKind exprKind, |
31 | const char *colname, |
32 | int attrno, |
33 | List *indirection, |
34 | int location); |
35 | extern void updateTargetListEntry(ParseState *pstate, TargetEntry *tle, |
36 | char *colname, int attrno, |
37 | List *indirection, |
38 | int location); |
39 | extern List *checkInsertTargets(ParseState *pstate, List *cols, |
40 | List **attrnos); |
41 | extern TupleDesc expandRecordVariable(ParseState *pstate, Var *var, |
42 | int levelsup); |
43 | extern char *FigureColname(Node *node); |
44 | extern char *FigureIndexColname(Node *node); |
45 | |
46 | #endif /* PARSE_TARGET_H */ |
47 | |