postgresql/src/include/utils/fmgrtab.h
Robert Haas 8ec569479f Apply PGDLLIMPORT markings broadly.
Up until now, we've had a policy of only marking certain variables
in the PostgreSQL header files with PGDLLIMPORT, but now we've
decided to mark them all. This means that extensions running on
Windows should no longer operate at a disadvantage as compared to
extensions running on Linux: if the variable is present in a header
file, it should be accessible.

Discussion: http://postgr.es/m/CA+TgmoYanc1_FSfimhgiWSqVyP5KKmh5NP2BWNwDhO8Pg2vGYQ@mail.gmail.com
2022-04-08 08:16:38 -04:00

49 lines
1.5 KiB
C

/*-------------------------------------------------------------------------
*
* fmgrtab.h
* The function manager's table of internal functions.
*
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* src/include/utils/fmgrtab.h
*
*-------------------------------------------------------------------------
*/
#ifndef FMGRTAB_H
#define FMGRTAB_H
#include "access/transam.h"
#include "fmgr.h"
/*
* This table stores info about all the built-in functions (ie, functions
* that are compiled into the Postgres executable).
*/
typedef struct
{
Oid foid; /* OID of the function */
short nargs; /* 0..FUNC_MAX_ARGS, or -1 if variable count */
bool strict; /* T if function is "strict" */
bool retset; /* T if function returns a set */
const char *funcName; /* C name of the function */
PGFunction func; /* pointer to compiled function */
} FmgrBuiltin;
extern PGDLLIMPORT const FmgrBuiltin fmgr_builtins[];
extern PGDLLIMPORT const int fmgr_nbuiltins; /* number of entries in table */
extern PGDLLIMPORT const Oid fmgr_last_builtin_oid; /* highest function OID in
* table */
/*
* Mapping from a builtin function's OID to its index in the fmgr_builtins
* array. This is indexed from 0 through fmgr_last_builtin_oid.
*/
#define InvalidOidBuiltinMapping PG_UINT16_MAX
extern PGDLLIMPORT const uint16 fmgr_builtin_oid_index[];
#endif /* FMGRTAB_H */