Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
6fcf2d7c
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6fcf2d7c
编写于
2月 13, 1998
作者:
V
Vadim B. Mikheev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
New SubPlan node for subselects.
New PARAM_EXEC type.
上级
eab1471b
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
83 addition
and
30 deletion
+83
-30
src/include/nodes/execnodes.h
src/include/nodes/execnodes.h
+27
-24
src/include/nodes/nodes.h
src/include/nodes/nodes.h
+2
-1
src/include/nodes/params.h
src/include/nodes/params.h
+12
-1
src/include/nodes/plannodes.h
src/include/nodes/plannodes.h
+39
-1
src/include/nodes/primnodes.h
src/include/nodes/primnodes.h
+3
-3
未找到文件。
src/include/nodes/execnodes.h
浏览文件 @
6fcf2d7c
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: execnodes.h,v 1.1
2 1997/09/08 21:52:40 momjian
Exp $
* $Id: execnodes.h,v 1.1
3 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
;
/* ----------------
...
...
src/include/nodes/nodes.h
浏览文件 @
6fcf2d7c
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: nodes.h,v 1.2
3 1998/01/17 04:53:38 momjian
Exp $
* $Id: nodes.h,v 1.2
4 1998/02/13 03:45:23 vadim
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -47,6 +47,7 @@ typedef enum NodeTag
T_Choose
,
T_Tee
,
T_Group
,
T_SubPlan
,
/*---------------------
* TAGS FOR PRIMITIVE NODES (primnodes.h)
...
...
src/include/nodes/params.h
浏览文件 @
6fcf2d7c
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: params.h,v 1.
6 1997/09/08 21:52:48 momjian
Exp $
* $Id: params.h,v 1.
7 1998/02/13 03:45:24 vadim
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -36,12 +36,16 @@
*
* PARAM_OLD: Same as PARAM_NEW, but in this case we refer to
* the "OLD" tuple.
*
* PARAM_EXEC: Evaluated by executor. Used for subselect...
*
*/
#define PARAM_NAMED 11
#define PARAM_NUM 12
#define PARAM_NEW 13
#define PARAM_OLD 14
#define PARAM_EXEC 15
#define PARAM_INVALID 100
...
...
@@ -87,4 +91,11 @@ typedef struct ParamListInfoData
typedef
ParamListInfoData
*
ParamListInfo
;
typedef
struct
ParamExecData
{
void
*
execPlan
;
/* plan must be executed to get param value */
Datum
value
;
bool
isnull
;
}
ParamExecData
;
#endif
/* PARAMS_H */
src/include/nodes/plannodes.h
浏览文件 @
6fcf2d7c
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: plannodes.h,v 1.1
3 1998/01/15 19:00:13 momjian
Exp $
* $Id: plannodes.h,v 1.1
4 1998/02/13 03:45:25 vadim
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -74,6 +74,24 @@ typedef struct Plan
List
*
qual
;
/* Node* or List* ?? */
struct
Plan
*
lefttree
;
struct
Plan
*
righttree
;
List
*
extParam
;
/* indices of _all_ _external_ PARAM_EXEC for
* this plan in global es_param_exec_vals.
* Params from setParam from initPlan-s
* are not included, but their execParam-s
* are here!!! */
List
*
locParam
;
/* someones from setParam-s */
List
*
chgParam
;
/* list of changed ones from the above */
List
*
initPlan
;
/* Init Plan nodes (un-correlated expr subselects) */
List
*
subPlan
;
/* Other SubPlan nodes */
/*
* We really need in some TopPlan node to store range table and
* resultRelation from Query there and get rid of Query itself
* from Executor. Some other stuff like below could be put there, too.
*/
int
nParamExec
;
/* Number of them in entire query. This is
* to get Executor know about how many
* param_exec there are in query plan. */
}
Plan
;
/* ----------------
...
...
@@ -335,4 +353,24 @@ typedef struct Tee
* plans */
}
Tee
;
/* ---------------------
* SubPlan node
* ---------------------
*/
typedef
struct
SubPlan
{
NodeTag
type
;
Plan
*
plan
;
/* subselect plan itself */
int
plan_id
;
/* dummy thing because of we haven't
* equal funcs for plan nodes... actually,
* we could put *plan itself somewhere else
* (TopPlan node ?)... */
List
*
rtable
;
/* range table */
List
*
setParam
;
/* non-correlated EXPR & EXISTS subqueries
* have to set some Params for paren Plan */
List
*
parParam
;
/* indices of corr. Vars from parent plan */
SubLink
*
sublink
;
/* SubLink node for subselects in WHERE and HAVING */
bool
shutdown
;
/* shutdown plan if TRUE */
}
SubPlan
;
#endif
/* PLANNODES_H */
src/include/nodes/primnodes.h
浏览文件 @
6fcf2d7c
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: primnodes.h,v 1.1
8 1998/02/10 16:04:27 momjian
Exp $
* $Id: primnodes.h,v 1.1
9 1998/02/13 03:45:29 vadim
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -86,7 +86,7 @@ typedef struct Fjoin
*/
typedef
enum
OpType
{
OP_EXPR
,
FUNC_EXPR
,
OR_EXPR
,
AND_EXPR
,
NOT_EXPR
OP_EXPR
,
FUNC_EXPR
,
OR_EXPR
,
AND_EXPR
,
NOT_EXPR
,
SUBPLAN_EXPR
}
OpType
;
typedef
struct
Expr
...
...
@@ -94,7 +94,7 @@ typedef struct Expr
NodeTag
type
;
Oid
typeOid
;
/* oid of the type of this expr */
OpType
opType
;
/* type of the op */
Node
*
oper
;
/* could be Oper or Func */
Node
*
oper
;
/* could be Oper or Func
or SubPlan
*/
List
*
args
;
/* list of argument nodes */
}
Expr
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录