codekingpro/portable-devtools
115k
1/*-------------------------------------------------------------------------2 *3 * parse_target.h4 * handle target lists5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/parser/parse_target.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef PARSE_TARGET_H15#define PARSE_TARGET_H16 17#include "parser/parse_node.h"18 19 20extern List *transformTargetList(ParseState *pstate, List *targetlist,21 ParseExprKind exprKind);22extern List *transformExpressionList(ParseState *pstate, List *exprlist,23 ParseExprKind exprKind, bool allowDefault);24extern void resolveTargetListUnknowns(ParseState *pstate, List *targetlist);25extern void markTargetListOrigins(ParseState *pstate, List *targetlist);26extern TargetEntry *transformTargetEntry(ParseState *pstate,27 Node *node, Node *expr, ParseExprKind exprKind,28 char *colname, bool resjunk);29extern Expr *transformAssignedExpr(ParseState *pstate, Expr *expr,30 ParseExprKind exprKind,31 const char *colname,32 int attrno,33 List *indirection,34 int location);35extern void updateTargetListEntry(ParseState *pstate, TargetEntry *tle,36 char *colname, int attrno,37 List *indirection,38 int location);39extern Node *transformAssignmentIndirection(ParseState *pstate,40 Node *basenode,41 const char *targetName,42 bool targetIsSubscripting,43 Oid targetTypeId,44 int32 targetTypMod,45 Oid targetCollation,46 List *indirection,47 ListCell *indirection_cell,48 Node *rhs,49 CoercionContext ccontext,50 int location);51extern List *checkInsertTargets(ParseState *pstate, List *cols,52 List **attrnos);53extern TupleDesc expandRecordVariable(ParseState *pstate, Var *var,54 int levelsup);55extern char *FigureColname(Node *node);56extern char *FigureIndexColname(Node *node);57 58#endif /* PARSE_TARGET_H */59 