34 lines
1.6 KiB
C
34 lines
1.6 KiB
C
/* -------------------------------------------------------------------------
|
|
*
|
|
* 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 */
|