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

43 lines
1.7 KiB
C

/* -------------------------------------------------------------------------
*
* parse_expr.h
* handle expressions in parser
*
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* src/include/parser/parse_expr.h
*
* -------------------------------------------------------------------------
*/
#ifndef PARSE_EXPR_H
#define PARSE_EXPR_H
#include "parser/parse_node.h"
#include "utils/plpgsql.h"
extern Node* transformExpr(ParseState* pstate, Node* expr, ParseExprKind exprKind);
extern Node* transformExprRecurse(ParseState* pstate, Node* expr);
extern Expr* make_distinct_op(ParseState* pstate, List* opname, Node* ltree, Node* rtree, int location);
extern Oid getMultiFuncInfo(char* fun_expr, PLpgSQL_expr* expr, bool isoutparamcheck = false);
extern void CheckOutParamIsConst(PLpgSQL_expr* expr);
extern void lockSeqForNextvalFunc(Node* node);
extern Node* transformSetVariableExpr(SetVariableExpr* set);
extern const char *ParseExprKindName(ParseExprKind exprKind);
/* start with ... connect by related output routines */
extern bool IsPseudoReturnColumn(const char *colname);
extern bool IsStartWithFunction(FuncExpr* result);
extern char *makeStartWithDummayColname(char *alias, char *column);
extern Node* transformColumnRef(ParseState* pstate, ColumnRef* cref);
extern void AddStartWithTargetRelInfo(ParseState* pstate, Node* relNode,
RangeTblEntry* rte, RangeTblRef *rtr);
extern void AdaptSWSelectStmt(ParseState *pstate, SelectStmt *stmt);
extern bool IsQuerySWCBRewrite(Query *query);
extern bool IsSWCBRewriteRTE(RangeTblEntry *rte);
extern Datum GetTypeZeroValue(Form_pg_attribute att_tup);
#endif /* PARSE_EXPR_H */