Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
execdesc.h71 linesDownload Raw Back to executor
1/*-------------------------------------------------------------------------2 *3 * execdesc.h4 *	  plan and query descriptor accessor macros used by the executor5 *	  and related modules.6 *7 *8 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group9 * Portions Copyright (c) 1994, Regents of the University of California10 *11 * src/include/executor/execdesc.h12 *13 *-------------------------------------------------------------------------14 */15#ifndef EXECDESC_H16#define EXECDESC_H17 18#include "nodes/execnodes.h"19#include "tcop/dest.h"20 21 22/* ----------------23 *		query descriptor:24 *25 *	a QueryDesc encapsulates everything that the executor26 *	needs to execute the query.27 *28 *	For the convenience of SQL-language functions, we also support QueryDescs29 *	containing utility statements; these must not be passed to the executor30 *	however.31 * ---------------------32 */33typedef struct QueryDesc34{35	/* These fields are provided by CreateQueryDesc */36	CmdType		operation;		/* CMD_SELECT, CMD_UPDATE, etc. */37	PlannedStmt *plannedstmt;	/* planner's output (could be utility, too) */38	const char *sourceText;		/* source text of the query */39	Snapshot	snapshot;		/* snapshot to use for query */40	Snapshot	crosscheck_snapshot;	/* crosscheck for RI update/delete */41	DestReceiver *dest;			/* the destination for tuple output */42	ParamListInfo params;		/* param values being passed in */43	QueryEnvironment *queryEnv; /* query environment passed in */44	int			instrument_options; /* OR of InstrumentOption flags */45 46	/* These fields are set by ExecutorStart */47	TupleDesc	tupDesc;		/* descriptor for result tuples */48	EState	   *estate;			/* executor's query-wide state */49	PlanState  *planstate;		/* tree of per-plan-node state */50 51	/* This field is set by ExecutorRun */52	bool		already_executed;	/* true if previously executed */53 54	/* This is always set NULL by the core system, but plugins can change it */55	struct Instrumentation *totaltime;	/* total time spent in ExecutorRun */56} QueryDesc;57 58/* in pquery.c */59extern QueryDesc *CreateQueryDesc(PlannedStmt *plannedstmt,60								  const char *sourceText,61								  Snapshot snapshot,62								  Snapshot crosscheck_snapshot,63								  DestReceiver *dest,64								  ParamListInfo params,65								  QueryEnvironment *queryEnv,66								  int instrument_options);67 68extern void FreeQueryDesc(QueryDesc *qdesc);69 70#endif							/* EXECDESC_H  */71 
codekingpro/portable-devtools · Team Ai