1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-05 07:21:24 +03:00

New SubPlan node for subselects.

New PARAM_EXEC type.
This commit is contained in:
Vadim B. Mikheev
1998-02-13 03:45:29 +00:00
parent eab1471b2b
commit 6fcf2d7cb3
5 changed files with 83 additions and 30 deletions

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: execnodes.h,v 1.12 1997/09/08 21:52:40 momjian Exp $
* $Id: execnodes.h,v 1.13 1998/02/13 03:45:22 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@ -80,16 +80,17 @@ typedef struct RelationInfo
*/
typedef struct ExprContext
{
NodeTag type;
TupleTableSlot *ecxt_scantuple;
TupleTableSlot *ecxt_innertuple;
TupleTableSlot *ecxt_outertuple;
Relation ecxt_relation;
Index ecxt_relid;
ParamListInfo ecxt_param_list_info;
List *ecxt_range_table;
Datum *ecxt_values; /* precomputed values for aggreg */
char *ecxt_nulls; /* null flags for aggreg values */
NodeTag type;
TupleTableSlot *ecxt_scantuple;
TupleTableSlot *ecxt_innertuple;
TupleTableSlot *ecxt_outertuple;
Relation ecxt_relation;
Index ecxt_relid;
ParamListInfo ecxt_param_list_info;
ParamExecData *ecxt_param_exec_vals; /* this is for subselects */
List *ecxt_range_table;
Datum *ecxt_values; /* precomputed values for aggreg */
char *ecxt_nulls; /* null flags for aggreg values */
} ExprContext;
/* ----------------
@ -193,18 +194,19 @@ typedef struct JunkFilter
*/
typedef struct EState
{
NodeTag type;
ScanDirection es_direction;
List *es_range_table;
RelationInfo *es_result_relation_info;
Relation es_into_relation_descriptor;
ParamListInfo es_param_list_info;
int es_BaseId;
TupleTable es_tupleTable;
JunkFilter *es_junkFilter;
int *es_refcount;
uint32 es_processed; /* # of tuples processed */
Oid es_lastoid; /* last oid processed (by INSERT) */
NodeTag type;
ScanDirection es_direction;
List *es_range_table;
RelationInfo *es_result_relation_info;
Relation es_into_relation_descriptor;
ParamListInfo es_param_list_info;
ParamExecData *es_param_exec_vals; /* this is for subselects */
int es_BaseId;
TupleTable es_tupleTable;
JunkFilter *es_junkFilter;
int *es_refcount;
uint32 es_processed; /* # of tuples processed */
Oid es_lastoid; /* last oid processed (by INSERT) */
} EState;
/* ----------------
@ -292,7 +294,8 @@ typedef struct CommonState
typedef struct ResultState
{
CommonState cstate; /* its first field is NodeTag */
int rs_done;
bool rs_done;
bool rs_checkqual;
} ResultState;
/* ----------------