Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
ce3afccf
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,发现更多精彩内容 >>
提交
ce3afccf
编写于
2月 04, 1999
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
More optimizer cleanups.
上级
18fbe414
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
49 addition
and
39 deletion
+49
-39
src/backend/nodes/copyfuncs.c
src/backend/nodes/copyfuncs.c
+7
-7
src/backend/nodes/readfuncs.c
src/backend/nodes/readfuncs.c
+2
-2
src/backend/optimizer/README
src/backend/optimizer/README
+17
-5
src/backend/optimizer/path/hashutils.c
src/backend/optimizer/path/hashutils.c
+2
-2
src/backend/optimizer/path/joinpath.c
src/backend/optimizer/path/joinpath.c
+6
-7
src/backend/optimizer/path/mergeutils.c
src/backend/optimizer/path/mergeutils.c
+6
-6
src/include/nodes/nodes.h
src/include/nodes/nodes.h
+2
-2
src/include/nodes/relation.h
src/include/nodes/relation.h
+5
-6
src/include/optimizer/paths.h
src/include/optimizer/paths.h
+2
-2
未找到文件。
src/backend/nodes/copyfuncs.c
浏览文件 @
ce3afccf
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.6
0 1999/02/04 01:46:53
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.6
1 1999/02/04 03:19:06
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -1397,13 +1397,13 @@ _copyHashInfo(HashInfo *from)
}
/* ----------------
* _copyMInfo
* _copyM
erge
Info
* ----------------
*/
static
MInfo
*
_copyM
Info
(
M
Info
*
from
)
static
M
erge
Info
*
_copyM
ergeInfo
(
Merge
Info
*
from
)
{
M
Info
*
newnode
=
makeNode
(
M
Info
);
M
ergeInfo
*
newnode
=
makeNode
(
Merge
Info
);
/* ----------------
* copy remainder of node
...
...
@@ -1800,8 +1800,8 @@ copyObject(void *from)
case
T_HashInfo
:
retval
=
_copyHashInfo
(
from
);
break
;
case
T_MInfo
:
retval
=
_copyMInfo
(
from
);
case
T_M
erge
Info
:
retval
=
_copyM
erge
Info
(
from
);
break
;
case
T_JoinInfo
:
retval
=
_copyJoinInfo
(
from
);
...
...
src/backend/nodes/readfuncs.c
浏览文件 @
ce3afccf
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.4
7 1999/02/04 01:46:54
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.4
8 1999/02/04 03:19:06
momjian Exp $
*
* NOTES
* Most of the read functions for plan nodes are tested. (In fact, they
...
...
@@ -1914,7 +1914,7 @@ _readJoinMethod()
static
HashInfo
*
_readHashInfo
()
{
HashInfo
*
local_node
;
HashInfo
*
local_node
;
char
*
token
;
int
length
;
...
...
src/backend/optimizer/README
浏览文件 @
ce3afccf
Optimizer Functions
-------------------
These directories take the Query structure returned by the parser, and
generate a plan used by the executor. The /plan directory generates the
plan, the /path generates all possible ways to join the tables, and
...
...
@@ -93,9 +96,18 @@ planner()
Optimizer Structures
--------------------
RelOptInfo - info about every relation
RestrictInfo - info about restrictions
JoinInfo - info about join combinations
Path - info about every way to access a relation(sequential, index)
PathOrder - info about every ordering (sort, merge of relations)
RelOptInfo - Every relation
RestrictInfo - restriction clauses
JoinInfo - join combinations
Path - every way to access a relation(sequential, index)
IndexPath - index scans
JoinPath - joins
MergePath - merge joins
HashPath - hash joins
PathOrder - every ordering type (sort, merge of relations)
src/backend/optimizer/path/hashutils.c
浏览文件 @
ce3afccf
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/hashutils.c,v 1.1
0 1999/02/04 01:46:57
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/hashutils.c,v 1.1
1 1999/02/04 03:19:08
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -54,7 +54,7 @@ group_clauses_by_hashop(List *restrictinfo_list,
*/
if
(
hashjoinop
)
{
HashInfo
*
xhashinfo
=
(
HashInfo
*
)
NULL
;
HashInfo
*
xhashinfo
=
(
HashInfo
*
)
NULL
;
Expr
*
clause
=
restrictinfo
->
clause
;
Var
*
leftop
=
get_leftop
(
clause
);
Var
*
rightop
=
get_rightop
(
clause
);
...
...
src/backend/optimizer/path/joinpath.c
浏览文件 @
ce3afccf
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.1
3 1999/02/04 01:46:57
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.1
4 1999/02/04 03:19:08
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -162,7 +162,6 @@ find_all_join_paths(Query *root, List *joinrels)
temp_list
=
innerrel
->
pathlist
;
foreach
(
path
,
temp_list
)
{
/*
* XXX
*
...
...
@@ -235,7 +234,7 @@ sort_inner_and_outer(RelOptInfo * joinrel,
List
*
mergeinfo_list
)
{
List
*
ms_list
=
NIL
;
M
Info
*
xmergeinfo
=
(
M
Info
*
)
NULL
;
M
ergeInfo
*
xmergeinfo
=
(
Merge
Info
*
)
NULL
;
MergePath
*
temp_node
=
(
MergePath
*
)
NULL
;
List
*
i
;
List
*
outerkeys
=
NIL
;
...
...
@@ -244,7 +243,7 @@ sort_inner_and_outer(RelOptInfo * joinrel,
foreach
(
i
,
mergeinfo_list
)
{
xmergeinfo
=
(
MInfo
*
)
lfirst
(
i
);
xmergeinfo
=
(
M
erge
Info
*
)
lfirst
(
i
);
outerkeys
=
extract_path_keys
(
xmergeinfo
->
jmethod
.
jmkeys
,
outerrel
->
targetlist
,
...
...
@@ -325,7 +324,7 @@ match_unsorted_outer(RelOptInfo * joinrel,
List
*
clauses
=
NIL
;
List
*
matchedJoinKeys
=
NIL
;
List
*
matchedJoinClauses
=
NIL
;
M
Info
*
xmergeinfo
=
(
M
Info
*
)
NULL
;
M
ergeInfo
*
xmergeinfo
=
(
Merge
Info
*
)
NULL
;
outerpath
=
(
Path
*
)
lfirst
(
i
);
...
...
@@ -465,7 +464,7 @@ match_unsorted_inner(RelOptInfo * joinrel,
foreach
(
i
,
innerpath_list
)
{
M
Info
*
xmergeinfo
=
(
M
Info
*
)
NULL
;
M
ergeInfo
*
xmergeinfo
=
(
Merge
Info
*
)
NULL
;
List
*
clauses
=
NIL
;
List
*
matchedJoinKeys
=
NIL
;
List
*
matchedJoinClauses
=
NIL
;
...
...
@@ -579,7 +578,7 @@ hash_inner_and_outer(RelOptInfo * joinrel,
RelOptInfo
*
innerrel
,
List
*
hashinfo_list
)
{
HashInfo
*
xhashinfo
=
(
HashInfo
*
)
NULL
;
HashInfo
*
xhashinfo
=
(
HashInfo
*
)
NULL
;
List
*
hjoin_list
=
NIL
;
HashPath
*
temp_node
=
(
HashPath
*
)
NULL
;
List
*
i
=
NIL
;
...
...
src/backend/optimizer/path/mergeutils.c
浏览文件 @
ce3afccf
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/mergeutils.c,v 1.1
1 1999/02/03 21:16:27
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/mergeutils.c,v 1.1
2 1999/02/04 03:19:09
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -53,7 +53,7 @@ group_clauses_by_order(List *restrictinfo_list,
* if one does not yet exist for this merge ordering.
*/
PathOrder
p_ordering
;
MInfo
*
xmergeinfo
;
M
erge
Info
*
xmergeinfo
;
Expr
*
clause
=
restrictinfo
->
clause
;
Var
*
leftop
=
get_leftop
(
clause
);
Var
*
rightop
=
get_rightop
(
clause
);
...
...
@@ -77,7 +77,7 @@ group_clauses_by_order(List *restrictinfo_list,
if
(
xmergeinfo
==
NULL
)
{
xmergeinfo
=
makeNode
(
MInfo
);
xmergeinfo
=
makeNode
(
M
erge
Info
);
xmergeinfo
->
m_ordering
=
merge_ordering
;
mergeinfo_list
=
lcons
(
xmergeinfo
,
...
...
@@ -102,7 +102,7 @@ group_clauses_by_order(List *restrictinfo_list,
* Returns the node if it exists.
*
*/
MInfo
*
M
erge
Info
*
match_order_mergeinfo
(
PathOrder
*
ordering
,
List
*
mergeinfo_list
)
{
MergeOrder
*
xmergeorder
;
...
...
@@ -110,7 +110,7 @@ match_order_mergeinfo(PathOrder *ordering, List *mergeinfo_list)
foreach
(
xmergeinfo
,
mergeinfo_list
)
{
M
Info
*
mergeinfo
=
(
M
Info
*
)
lfirst
(
xmergeinfo
);
M
ergeInfo
*
mergeinfo
=
(
Merge
Info
*
)
lfirst
(
xmergeinfo
);
xmergeorder
=
mergeinfo
->
m_ordering
;
...
...
@@ -123,5 +123,5 @@ match_order_mergeinfo(PathOrder *ordering, List *mergeinfo_list)
return
mergeinfo
;
}
}
return
(
MInfo
*
)
NIL
;
return
(
M
erge
Info
*
)
NIL
;
}
src/include/nodes/nodes.h
浏览文件 @
ce3afccf
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: nodes.h,v 1.3
7 1999/02/04 01:47:0
0 momjian Exp $
* $Id: nodes.h,v 1.3
8 1999/02/04 03:19:1
0 momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -82,7 +82,7 @@ typedef enum NodeTag
T_RestrictInfo
,
T_JoinMethod
,
T_HashInfo
,
T_MInfo
,
T_M
erge
Info
,
T_JoinInfo
,
T_Iter
,
T_Stream
,
...
...
src/include/nodes/relation.h
浏览文件 @
ce3afccf
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: relation.h,v 1.1
3 1999/02/04 01:47:02
momjian Exp $
* $Id: relation.h,v 1.1
4 1999/02/04 03:19:10
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -47,7 +47,7 @@ typedef List *Relid;
* leaves the tuples unordered)
* cheapestpath - least expensive Path (regardless of final order)
* pruneable - flag to let the planner know whether it can prune the plan
* space of this RelOptInfo or not.
-- JMH, 11/11/92
* space of this RelOptInfo or not.
*
* * If the relation is a (secondary) index it will have the following
* three fields:
...
...
@@ -157,8 +157,7 @@ typedef struct IndexPath
Path
path
;
List
*
indexid
;
List
*
indexqual
;
int
*
indexkeys
;
/* to transform heap attnos into index
* ones */
int
*
indexkeys
;
/* to transform heap attnos into index ones */
}
IndexPath
;
typedef
struct
JoinPath
...
...
@@ -236,11 +235,11 @@ typedef struct HashInfo
Oid
hashop
;
}
HashInfo
;
typedef
struct
MInfo
typedef
struct
M
erge
Info
{
JoinMethod
jmethod
;
MergeOrder
*
m_ordering
;
}
MInfo
;
}
M
erge
Info
;
typedef
struct
JoinInfo
{
...
...
src/include/optimizer/paths.h
浏览文件 @
ce3afccf
...
...
@@ -7,7 +7,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: paths.h,v 1.1
1 1999/02/03 20:15:53
momjian Exp $
* $Id: paths.h,v 1.1
2 1999/02/04 03:19:11
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -70,7 +70,7 @@ extern List *new_join_pathkeys(List *outer_pathkeys,
*/
extern
List
*
group_clauses_by_order
(
List
*
restrictinfo_list
,
int
inner_relid
);
extern
MInfo
*
match_order_mergeinfo
(
PathOrder
*
ordering
,
extern
M
erge
Info
*
match_order_mergeinfo
(
PathOrder
*
ordering
,
List
*
mergeinfo_list
);
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录