PostgreSQL Source Code  git master
parse_target.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * parse_target.h
4  * handle target lists
5  *
6  *
7  * Portions Copyright (c) 1996-2024, 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);
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);
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);
51 extern List *checkInsertTargets(ParseState *pstate, List *cols,
52  List **attrnos);
53 extern TupleDesc expandRecordVariable(ParseState *pstate, Var *var,
54  int levelsup);
55 extern char *FigureColname(Node *node);
56 extern char *FigureIndexColname(Node *node);
57 
58 #endif /* PARSE_TARGET_H */
signed int int32
Definition: c.h:494
ParseExprKind
Definition: parse_node.h:39
List * transformTargetList(ParseState *pstate, List *targetlist, ParseExprKind exprKind)
Definition: parse_target.c:121
Expr * transformAssignedExpr(ParseState *pstate, Expr *expr, ParseExprKind exprKind, const char *colname, int attrno, List *indirection, int location)
Definition: parse_target.c:452
char * FigureIndexColname(Node *node)
void updateTargetListEntry(ParseState *pstate, TargetEntry *tle, char *colname, int attrno, List *indirection, int location)
Definition: parse_target.c:619
void resolveTargetListUnknowns(ParseState *pstate, List *targetlist)
Definition: parse_target.c:288
TargetEntry * transformTargetEntry(ParseState *pstate, Node *node, Node *expr, ParseExprKind exprKind, char *colname, bool resjunk)
Definition: parse_target.c:75
void markTargetListOrigins(ParseState *pstate, List *targetlist)
Definition: parse_target.c:318
List * checkInsertTargets(ParseState *pstate, List *cols, List **attrnos)
Node * transformAssignmentIndirection(ParseState *pstate, Node *basenode, const char *targetName, bool targetIsSubscripting, Oid targetTypeId, int32 targetTypMod, Oid targetCollation, List *indirection, ListCell *indirection_cell, Node *rhs, CoercionContext ccontext, int location)
Definition: parse_target.c:683
List * transformExpressionList(ParseState *pstate, List *exprlist, ParseExprKind exprKind, bool allowDefault)
Definition: parse_target.c:220
char * FigureColname(Node *node)
TupleDesc expandRecordVariable(ParseState *pstate, Var *var, int levelsup)
unsigned int Oid
Definition: postgres_ext.h:31
CoercionContext
Definition: primnodes.h:683
Definition: pg_list.h:54
Definition: nodes.h:129
Definition: primnodes.h:248