1/*-------------------------------------------------------------------------
2 *
3 * functions.h
4 * Declarations for execution of SQL-language functions.
5 *
6 *
7 * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
9 *
10 * src/include/executor/functions.h
11 *
12 *-------------------------------------------------------------------------
13 */
14#ifndef FUNCTIONS_H
15#define FUNCTIONS_H
16
17#include "nodes/execnodes.h"
18#include "tcop/dest.h"
19
20/* This struct is known only within executor/functions.c */
21typedef struct SQLFunctionParseInfo *SQLFunctionParseInfoPtr;
22
23extern Datum fmgr_sql(PG_FUNCTION_ARGS);
24
25extern SQLFunctionParseInfoPtr prepare_sql_fn_parse_info(HeapTuple procedureTuple,
26 Node *call_expr,
27 Oid inputCollation);
28
29extern void sql_fn_parser_setup(struct ParseState *pstate,
30 SQLFunctionParseInfoPtr pinfo);
31
32extern void check_sql_fn_statements(List *queryTreeList);
33
34extern bool check_sql_fn_retval(Oid func_id, Oid rettype,
35 List *queryTreeList,
36 bool *modifyTargetList,
37 JunkFilter **junkFilter);
38
39extern DestReceiver *CreateSQLFunctionDestReceiver(void);
40
41#endif /* FUNCTIONS_H */
42