00001 /*------------------------------------------------------------------------- 00002 * 00003 * fmgrtab.h 00004 * The function manager's table of internal functions. 00005 * 00006 * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group 00007 * Portions Copyright (c) 1994, Regents of the University of California 00008 * 00009 * src/include/utils/fmgrtab.h 00010 * 00011 *------------------------------------------------------------------------- 00012 */ 00013 #ifndef FMGRTAB_H 00014 #define FMGRTAB_H 00015 00016 #include "fmgr.h" 00017 00018 00019 /* 00020 * This table stores info about all the built-in functions (ie, functions 00021 * that are compiled into the Postgres executable). The table entries are 00022 * required to appear in Oid order, so that binary search can be used. 00023 */ 00024 00025 typedef struct 00026 { 00027 Oid foid; /* OID of the function */ 00028 const char *funcName; /* C name of the function */ 00029 short nargs; /* 0..FUNC_MAX_ARGS, or -1 if variable count */ 00030 bool strict; /* T if function is "strict" */ 00031 bool retset; /* T if function returns a set */ 00032 PGFunction func; /* pointer to compiled function */ 00033 } FmgrBuiltin; 00034 00035 extern const FmgrBuiltin fmgr_builtins[]; 00036 00037 extern const int fmgr_nbuiltins; /* number of entries in table */ 00038 00039 #endif /* FMGRTAB_H */