1 /*-------------------------------------------------------------------------
2  *
3  * pg_proc_d.h
4  *    Macro definitions for pg_proc
5  *
6  * Portions Copyright (c) 1996-2019, 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