/*-------------------------------------------------------------------------
*
* pg_proc_d.h
* Macro definitions for pg_proc
*
* Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* NOTES
* ******************************
* *** DO NOT EDIT THIS FILE! ***
* ******************************
*
* It has been GENERATED by src/backend/catalog/genbki.pl
*
*-------------------------------------------------------------------------
*/
#ifndef PG_PROC_D_H
#define PG_PROC_D_H
#define ProcedureRelationId 1255
#define ProcedureRelation_Rowtype_Id 81
#define Anum_pg_proc_proname 1
#define Anum_pg_proc_pronamespace 2
#define Anum_pg_proc_proowner 3
#define Anum_pg_proc_prolang 4
#define Anum_pg_proc_procost 5
#define Anum_pg_proc_prorows 6
#define Anum_pg_proc_provariadic 7
#define Anum_pg_proc_protransform 8
#define Anum_pg_proc_prokind 9
#define Anum_pg_proc_prosecdef 10
#define Anum_pg_proc_proleakproof 11
#define Anum_pg_proc_proisstrict 12
#define Anum_pg_proc_proretset 13
#define Anum_pg_proc_provolatile 14
#define Anum_pg_proc_proparallel 15
#define Anum_pg_proc_pronargs 16
#define Anum_pg_proc_pronargdefaults 17
#define Anum_pg_proc_prorettype 18
#define Anum_pg_proc_proargtypes 19
#define Anum_pg_proc_proallargtypes 20
#define Anum_pg_proc_proargmodes 21
#define Anum_pg_proc_proargnames 22
#define Anum_pg_proc_proargdefaults 23
#define Anum_pg_proc_protrftypes 24
#define Anum_pg_proc_prosrc 25
#define Anum_pg_proc_probin 26
#define Anum_pg_proc_proconfig 27
#define Anum_pg_proc_proacl 28
#define Natts_pg_proc 28
/*
* Symbolic values for prokind column
*/
#define PROKIND_FUNCTION 'f'
#define PROKIND_AGGREGATE 'a'
#define PROKIND_WINDOW 'w'
#define PROKIND_PROCEDURE 'p'
/*
* Symbolic values for provolatile column: these indicate whether the result
* of a function is dependent *only* on the values of its explicit arguments,
* or can change due to outside factors (such as parameter variables or
* table contents). NOTE: functions having side-effects, such as setval(),
* must be labeled volatile to ensure they will not get optimized away,
* even if the actual return value is not changeable.
*/
#define PROVOLATILE_IMMUTABLE 'i' /* never changes for given input */
#define PROVOLATILE_STABLE 's' /* does not change within a scan */
#define PROVOLATILE_VOLATILE 'v' /* can change even within a scan */
/*
* Symbolic values for proparallel column: these indicate whether a function
* can be safely be run in a parallel backend, during parallelism but
* necessarily in the master, or only in non-parallel mode.
*/
#define PROPARALLEL_SAFE 's' /* can run in worker or master */
#define PROPARALLEL_RESTRICTED 'r' /* can run in parallel master only */
#define PROPARALLEL_UNSAFE 'u' /* banned while in parallel mode */
/*
* Symbolic values for proargmodes column. Note that these must agree with
* the FunctionParameterMode enum in parsenodes.h; we declare them here to
* be accessible from either header.
*/
#define PROARGMODE_IN 'i'
#define PROARGMODE_OUT 'o'
#define PROARGMODE_INOUT 'b'
#define PROARGMODE_VARIADIC 'v'
#define PROARGMODE_TABLE 't'
#endif /* PG_PROC_D_H */