2 * src/pl/plpython/plpy_procedure.h
5#ifndef PLPY_PROCEDURE_H
6#define PLPY_PROCEDURE_H
24/* saved arguments for outer recursion level or set-returning function */
28 PyObject *
args;
/* "args" element of globals dict */
29 PyObject *
td;
/* "TD" element of globals dict, if trigger */
30 int nargs;
/* length of namedargs array */
34/* cached procedure data */
39 char *
proname;
/* SQL name of procedure */
40 char *
pyname;
/* Python name of procedure */
44 bool is_setof;
/* true, if function returns result set */
49 char *
src;
/* textual procedure code, after mangling */
52 int nargs;
/* Number of elements in above arrays */
55 PyObject *
code;
/* compiled procedure code */
56 PyObject *
statics;
/* data saved across calls, local scope */
57 PyObject *
globals;
/* data saved across calls, global scope */
58 long calldepth;
/* depth of recursive calls of function */
62/* the procedure cache key */
66 Oid fn_rel;
/* triggered-on relation or InvalidOid */
69/* the procedure cache entry */
76/* PLyProcedure manipulation */
82#endif /* PLPY_PROCEDURE_H */
#define FLEXIBLE_ARRAY_MEMBER
char * PLy_procedure_name(PLyProcedure *proc)
struct PLySavedArgs PLySavedArgs
void init_procedure_caches(void)
struct PLyProcedureKey PLyProcedureKey
PLyProcedure * PLy_procedure_get(Oid fn_oid, Oid fn_rel, PLyTrigType is_trigger)
struct PLyProcedure PLyProcedure
void PLy_procedure_compile(PLyProcedure *proc, const char *src)
void PLy_procedure_delete(PLyProcedure *proc)
struct PLyProcedureEntry PLyProcedureEntry
struct PLySavedArgs * next
PyObject * namedargs[FLEXIBLE_ARRAY_MEMBER]