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 | |