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