1 | /*------------------------------------------------------------------------- |
2 | * |
3 | * fmgrtab.h |
4 | * The function manager's table of internal functions. |
5 | * |
6 | * Portions Copyright (c) 1996-2019, 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 | |