1 /*-------------------------------------------------------------------------
2  *
3  * fmgrtab.h
4  *	  The function manager's table of internal functions.
5  *
6  * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
7  * Portions Copyright (c) 1994, Regents of the University of California
8  *
9  * src/include/utils/fmgrtab.h
10  *
11  *-------------------------------------------------------------------------
12  */
13 #ifndef FMGRTAB_H
14 #define FMGRTAB_H
15 
16 #include "fmgr.h"
17 
18 
19 /*
20  * This table stores info about all the built-in functions (ie, functions
21  * that are compiled into the Postgres executable).  The table entries are
22  * required to appear in Oid order, so that binary search can be used.
23  */
24 
25 typedef struct
26 {
27 	Oid			foid;			/* OID of the function */
28 	const char *funcName;		/* C name of the function */
29 	short		nargs;			/* 0..FUNC_MAX_ARGS, or -1 if variable count */
30 	bool		strict;			/* T if function is "strict" */
31 	bool		retset;			/* T if function returns a set */
32 	PGFunction	func;			/* pointer to compiled function */
33 } FmgrBuiltin;
34 
35 extern const FmgrBuiltin fmgr_builtins[];
36 
37 extern const int fmgr_nbuiltins;	/* number of entries in table */
38 
39 #endif							/* FMGRTAB_H */
40