1 /*------------------------------------------------------------------------- 2 * 3 * pg_proc_d.h 4 * Macro definitions for pg_proc 5 * 6 * Portions Copyright (c) 1996-2021, 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_prosqlbody 28 52 #define Anum_pg_proc_proconfig 29 53 #define Anum_pg_proc_proacl 30 54 55 #define Natts_pg_proc 30 56 57 58 /* 59 * Symbolic values for prokind column 60 */ 61 #define PROKIND_FUNCTION 'f' 62 #define PROKIND_AGGREGATE 'a' 63 #define PROKIND_WINDOW 'w' 64 #define PROKIND_PROCEDURE 'p' 65 66 /* 67 * Symbolic values for provolatile column: these indicate whether the result 68 * of a function is dependent *only* on the values of its explicit arguments, 69 * or can change due to outside factors (such as parameter variables or 70 * table contents). NOTE: functions having side-effects, such as setval(), 71 * must be labeled volatile to ensure they will not get optimized away, 72 * even if the actual return value is not changeable. 73 */ 74 #define PROVOLATILE_IMMUTABLE 'i' /* never changes for given input */ 75 #define PROVOLATILE_STABLE 's' /* does not change within a scan */ 76 #define PROVOLATILE_VOLATILE 'v' /* can change even within a scan */ 77 78 /* 79 * Symbolic values for proparallel column: these indicate whether a function 80 * can be safely be run in a parallel backend, during parallelism but 81 * necessarily in the leader, or only in non-parallel mode. 82 */ 83 #define PROPARALLEL_SAFE 's' /* can run in worker or leader */ 84 #define PROPARALLEL_RESTRICTED 'r' /* can run in parallel leader only */ 85 #define PROPARALLEL_UNSAFE 'u' /* banned while in parallel mode */ 86 87 /* 88 * Symbolic values for proargmodes column. Note that these must agree with 89 * the FunctionParameterMode enum in parsenodes.h; we declare them here to 90 * be accessible from either header. 91 */ 92 #define PROARGMODE_IN 'i' 93 #define PROARGMODE_OUT 'o' 94 #define PROARGMODE_INOUT 'b' 95 #define PROARGMODE_VARIADIC 'v' 96 #define PROARGMODE_TABLE 't' 97 98 99 #endif /* PG_PROC_D_H */ 100