PostgreSQL Source Code  git master
fmgrtab.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * fmgrtab.h
4  * The function manager's table of internal functions.
5  *
6  * Portions Copyright (c) 1996-2024, 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 
36 
37 extern PGDLLIMPORT const int fmgr_nbuiltins; /* number of entries in table */
38 
39 extern PGDLLIMPORT const Oid fmgr_last_builtin_oid; /* highest function OID in
40  * table */
41 
42 /*
43  * Mapping from a builtin function's OID to its index in the fmgr_builtins
44  * array. This is indexed from 0 through fmgr_last_builtin_oid.
45  */
46 #define InvalidOidBuiltinMapping PG_UINT16_MAX
48 
49 #endif /* FMGRTAB_H */
unsigned short uint16
Definition: c.h:505
#define PGDLLIMPORT
Definition: c.h:1316
Datum(* PGFunction)(FunctionCallInfo fcinfo)
Definition: fmgr.h:40
PGDLLIMPORT const Oid fmgr_last_builtin_oid
PGDLLIMPORT const int fmgr_nbuiltins
PGDLLIMPORT const FmgrBuiltin fmgr_builtins[]
PGDLLIMPORT const uint16 fmgr_builtin_oid_index[]
unsigned int Oid
Definition: postgres_ext.h:31
bool strict
Definition: fmgrtab.h:29
const char * funcName
Definition: fmgrtab.h:31
bool retset
Definition: fmgrtab.h:30
PGFunction func
Definition: fmgrtab.h:32
Oid foid
Definition: fmgrtab.h:27
short nargs
Definition: fmgrtab.h:28