/* ------------------------------------------------------------------------- * * parse_target.h * handle target lists * * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/parser/parse_target.h * * ------------------------------------------------------------------------- */ #ifndef PARSE_TARGET_H #define PARSE_TARGET_H #include "parser/parse_node.h" extern List* transformTargetList(ParseState* pstate, List* targetlist, ParseExprKind exprKind); extern List* transformExpressionList(ParseState* pstate, List* exprlist, ParseExprKind exprKind); extern void markTargetListOrigins(ParseState* pstate, List* targetlist); extern void resolveTargetListUnknowns(ParseState* pstate, List* targetlist); extern TargetEntry* transformTargetEntry(ParseState* pstate, Node* node, Node* expr, ParseExprKind exprKind, char* colname, bool resjunk); extern Expr* transformAssignedExpr(ParseState* pstate, Expr* expr, ParseExprKind exprKind, char* colname, int attrno, List* indirection, int location, Relation rd, RangeTblEntry* rte); extern void updateTargetListEntry(ParseState* pstate, TargetEntry* tle, char* colname, int attrno, List* indirection, int location, Relation rd, RangeTblEntry* rte); extern List* checkInsertTargets(ParseState* pstate, List* cols, List** attrnos); extern TupleDesc expandRecordVariable(ParseState* pstate, Var* var, int levelsup); extern char* FigureColname(Node* node); extern char* FigureIndexColname(Node* node); #endif /* PARSE_TARGET_H */