1 /*------------------------------------------------------------------------- 2 * 3 * parse_target.h 4 * handle target lists 5 * 6 * 7 * Portions Copyright (c) 1996-2020, 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