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