Files
openGauss-server/src/include/parser/parse_target.h
wuchenglin 58e6120553 !2998 SRF执行优化
* fix srf factcheck case
* SRF执行优化
2023-03-06 09:29:04 +00:00

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 */