1 /*------------------------------------------------------------------------- 2 * 3 * pg_proc_d.h 4 * Macro definitions for pg_proc 5 * 6 * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group 7 * Portions Copyright (c) 1994, Regents of the University of California 8 * 9 * NOTES 10 * ****************************** 11 * *** DO NOT EDIT THIS FILE! *** 12 * ****************************** 13 * 14 * It has been GENERATED by src/backend/catalog/genbki.pl 15 * 16 *------------------------------------------------------------------------- 17 */ 18 #ifndef PG_PROC_D_H 19 #define PG_PROC_D_H 20 21 #define ProcedureRelationId 1255 22 #define ProcedureRelation_Rowtype_Id 81 23 24 #define Anum_pg_proc_oid 1 25 #define Anum_pg_proc_proname 2 26 #define Anum_pg_proc_pronamespace 3 27 #define Anum_pg_proc_proowner 4 28 #define Anum_pg_proc_prolang 5 29 #define Anum_pg_proc_procost 6 30 #define Anum_pg_proc_prorows 7 31 #define Anum_pg_proc_provariadic 8 32 #define Anum_pg_proc_prosupport 9 33 #define Anum_pg_proc_prokind 10 34 #define Anum_pg_proc_prosecdef 11 35 #define Anum_pg_proc_proleakproof 12 36 #define Anum_pg_proc_proisstrict 13 37 #define Anum_pg_proc_proretset 14 38 #define Anum_pg_proc_provolatile 15 39 #define Anum_pg_proc_proparallel 16 40 #define Anum_pg_proc_pronargs 17 41 #define Anum_pg_proc_pronargdefaults 18 42 #define Anum_pg_proc_prorettype 19 43 #define Anum_pg_proc_proargtypes 20 44 #define Anum_pg_proc_proallargtypes 21 45 #define Anum_pg_proc_proargmodes 22 46 #define Anum_pg_proc_proargnames 23 47 #define Anum_pg_proc_proargdefaults 24 48 #define Anum_pg_proc_protrftypes 25 49 #define Anum_pg_proc_prosrc 26 50 #define Anum_pg_proc_probin 27 51 #define Anum_pg_proc_proconfig 28 52 #define Anum_pg_proc_proacl 29 53 54 #define Natts_pg_proc 29 55 56 57 /* 58 * Symbolic values for prokind column 59 */ 60 #define PROKIND_FUNCTION 'f' 61 #define PROKIND_AGGREGATE 'a' 62 #define PROKIND_WINDOW 'w' 63 #define PROKIND_PROCEDURE 'p' 64 65 /* 66 * Symbolic values for provolatile column: these indicate whether the result 67 * of a function is dependent *only* on the values of its explicit arguments, 68 * or can change due to outside factors (such as parameter variables or 69 * table contents). NOTE: functions having side-effects, such as setval(), 70 * must be labeled volatile to ensure they will not get optimized away, 71 * even if the actual return value is not changeable. 72 */ 73 #define PROVOLATILE_IMMUTABLE 'i' /* never changes for given input */ 74 #define PROVOLATILE_STABLE 's' /* does not change within a scan */ 75 #define PROVOLATILE_VOLATILE 'v' /* can change even within a scan */ 76 77 /* 78 * Symbolic values for proparallel column: these indicate whether a function 79 * can be safely be run in a parallel backend, during parallelism but 80 * necessarily in the master, or only in non-parallel mode. 81 */ 82 #define PROPARALLEL_SAFE 's' /* can run in worker or master */ 83 #define PROPARALLEL_RESTRICTED 'r' /* can run in parallel master only */ 84 #define PROPARALLEL_UNSAFE 'u' /* banned while in parallel mode */ 85 86 /* 87 * Symbolic values for proargmodes column. Note that these must agree with 88 * the FunctionParameterMode enum in parsenodes.h; we declare them here to 89 * be accessible from either header. 90 */ 91 #define PROARGMODE_IN 'i' 92 #define PROARGMODE_OUT 'o' 93 #define PROARGMODE_INOUT 'b' 94 #define PROARGMODE_VARIADIC 'v' 95 #define PROARGMODE_TABLE 't' 96 97 #define HEAP_TABLE_AM_HANDLER_OID 3 98 99 #endif /* PG_PROC_D_H */ 100