PostgreSQL Source Code
git master
execdesc.h
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------
2
*
3
* execdesc.h
4
* plan and query descriptor accessor macros used by the executor
5
* and related modules.
6
*
7
*
8
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
9
* Portions Copyright (c) 1994, Regents of the University of California
10
*
11
* src/include/executor/execdesc.h
12
*
13
*-------------------------------------------------------------------------
14
*/
15
#ifndef EXECDESC_H
16
#define EXECDESC_H
17
18
#include "
nodes/execnodes.h
"
19
#include "
tcop/dest.h
"
20
21
22
/* ----------------
23
* query descriptor:
24
*
25
* a QueryDesc encapsulates everything that the executor
26
* needs to execute the query.
27
*
28
* For the convenience of SQL-language functions, we also support QueryDescs
29
* containing utility statements; these must not be passed to the executor
30
* however.
31
* ---------------------
32
*/
33
typedef
struct
QueryDesc
34
{
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 */
59
extern
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
68
extern
void
FreeQueryDesc
(
QueryDesc
*qdesc);
69
70
#endif
/* EXECDESC_H */
dest.h
FreeQueryDesc
void FreeQueryDesc(QueryDesc *qdesc)
Definition:
pquery.c:105
CreateQueryDesc
QueryDesc * CreateQueryDesc(PlannedStmt *plannedstmt, const char *sourceText, Snapshot snapshot, Snapshot crosscheck_snapshot, DestReceiver *dest, ParamListInfo params, QueryEnvironment *queryEnv, int instrument_options)
Definition:
pquery.c:67
QueryDesc
struct QueryDesc QueryDesc
execnodes.h
generate_unaccent_rules.dest
dest
Definition:
generate_unaccent_rules.py:285
CmdType
CmdType
Definition:
nodes.h:263
EState
Definition:
execnodes.h:624
Instrumentation
Definition:
instrument.h:69
ParamListInfoData
Definition:
params.h:111
PlanState
Definition:
execnodes.h:1115
PlannedStmt
Definition:
plannodes.h:47
QueryDesc
Definition:
execdesc.h:34
QueryDesc::sourceText
const char * sourceText
Definition:
execdesc.h:38
QueryDesc::params
ParamListInfo params
Definition:
execdesc.h:42
QueryDesc::dest
DestReceiver * dest
Definition:
execdesc.h:41
QueryDesc::instrument_options
int instrument_options
Definition:
execdesc.h:44
QueryDesc::estate
EState * estate
Definition:
execdesc.h:48
QueryDesc::operation
CmdType operation
Definition:
execdesc.h:36
QueryDesc::snapshot
Snapshot snapshot
Definition:
execdesc.h:39
QueryDesc::already_executed
bool already_executed
Definition:
execdesc.h:52
QueryDesc::plannedstmt
PlannedStmt * plannedstmt
Definition:
execdesc.h:37
QueryDesc::totaltime
struct Instrumentation * totaltime
Definition:
execdesc.h:55
QueryDesc::queryEnv
QueryEnvironment * queryEnv
Definition:
execdesc.h:43
QueryDesc::tupDesc
TupleDesc tupDesc
Definition:
execdesc.h:47
QueryDesc::crosscheck_snapshot
Snapshot crosscheck_snapshot
Definition:
execdesc.h:40
QueryDesc::planstate
PlanState * planstate
Definition:
execdesc.h:49
QueryEnvironment
Definition:
queryenvironment.c:33
SnapshotData
Definition:
snapshot.h:143
TupleDescData
Definition:
tupdesc.h:80
_DestReceiver
Definition:
dest.h:116
src
include
executor
execdesc.h
Generated on Wed Sep 18 2024 12:13:24 for PostgreSQL Source Code by
1.9.1