fmgrtab.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*-------------------------------------------------------------------------
  2. *
  3. * fmgrtab.h
  4. * The function manager's table of internal functions.
  5. *
  6. * Portions Copyright (c) 1996-2022, 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. #include "access/transam.h"
  16. #include "fmgr.h"
  17. /*
  18. * This table stores info about all the built-in functions (ie, functions
  19. * that are compiled into the Postgres executable).
  20. */
  21. typedef struct
  22. {
  23. Oid foid; /* OID of the function */
  24. short nargs; /* 0..FUNC_MAX_ARGS, or -1 if variable count */
  25. bool strict; /* T if function is "strict" */
  26. bool retset; /* T if function returns a set */
  27. const char *funcName; /* C name of the function */
  28. PGFunction func; /* pointer to compiled function */
  29. } FmgrBuiltin;
  30. extern PGDLLIMPORT const FmgrBuiltin fmgr_builtins[];
  31. extern PGDLLIMPORT const int fmgr_nbuiltins; /* number of entries in table */
  32. extern PGDLLIMPORT const Oid fmgr_last_builtin_oid; /* highest function OID in
  33. * table */
  34. /*
  35. * Mapping from a builtin function's OID to its index in the fmgr_builtins
  36. * array. This is indexed from 0 through fmgr_last_builtin_oid.
  37. */
  38. #define InvalidOidBuiltinMapping PG_UINT16_MAX
  39. extern PGDLLIMPORT const uint16 fmgr_builtin_oid_index[];
  40. #endif /* FMGRTAB_H */