1 /*------------------------------------------------------------------------- 2 * 3 * fmgrtab.h 4 * The function manager's table of internal functions. 5 * 6 * Portions Copyright (c) 1996-2021, 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 "access/transam.h" 17 #include "fmgr.h" 18 19 20 /* 21 * This table stores info about all the built-in functions (ie, functions 22 * that are compiled into the Postgres executable). 23 */ 24 25 typedef struct 26 { 27 Oid foid; /* OID of the function */ 28 short nargs; /* 0..FUNC_MAX_ARGS, or -1 if variable count */ 29 bool strict; /* T if function is "strict" */ 30 bool retset; /* T if function returns a set */ 31 const char *funcName; /* C name of the function */ 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 extern const Oid fmgr_last_builtin_oid; /* highest function OID in table */ 40 41 /* 42 * Mapping from a builtin function's OID to its index in the fmgr_builtins 43 * array. This is indexed from 0 through fmgr_last_builtin_oid. 44 */ 45 #define InvalidOidBuiltinMapping PG_UINT16_MAX 46 extern const uint16 fmgr_builtin_oid_index[]; 47 48 #endif /* FMGRTAB_H */ 49