Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
da9db569
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,发现更多精彩内容 >>
提交
da9db569
编写于
7月 09, 1998
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
change <CODE> to <I>.
上级
b992bb45
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
10 deletion
+10
-10
src/tools/backend/index.html
src/tools/backend/index.html
+10
-10
未找到文件。
src/tools/backend/index.html
浏览文件 @
da9db569
...
@@ -25,13 +25,13 @@ HREF="../../include/nodes/parsenodes.h">SelectStmt.</A>
...
@@ -25,13 +25,13 @@ HREF="../../include/nodes/parsenodes.h">SelectStmt.</A>
The query is then identified as a
<I>
Utility
</I>
query or a more complex
The query is then identified as a
<I>
Utility
</I>
query or a more complex
query. A
<I>
Utility
</I>
query is processed by a query-specific function
query. A
<I>
Utility
</I>
query is processed by a query-specific function
in
<A
HREF=
"../../backend/commands"
>
commands.
</A>
A complex query, like
in
<A
HREF=
"../../backend/commands"
>
commands.
</A>
A complex query, like
<
CODE>
SELECT, UPDATE,
</CODE
>
and
<
I>
SELECT, UPDATE,
</I
>
and
<
CODE>
DELETE
</CODE
>
requires much more handling.
<
I>
DELETE
</I
>
requires much more handling.
<P>
<P>
The parser takes a complex query, and creates a
The parser takes a complex query, and creates a
<A
HREF=
"../../include/nodes/parsenodes.h"
>
Query
</A>
structure that
<A
HREF=
"../../include/nodes/parsenodes.h"
>
Query
</A>
structure that
contains all the elements used by complex queries. Query.qual holds the
contains all the elements used by complex queries. Query.qual holds the
<
CODE>
WHERE
</CODE
>
clause qualification, which is filled in by
<
I>
WHERE
</I
>
clause qualification, which is filled in by
<A
HREF=
"../../backend/parser/parse_clause.c"
>
transformWhereClause().
</A>
<A
HREF=
"../../backend/parser/parse_clause.c"
>
transformWhereClause().
</A>
Each table referenced in the query is represented by a
<A
Each table referenced in the query is represented by a
<A
HREF=
"../../include/nodes/parsenodes.h"
>
RangeTableEntry,
</A>
and they
HREF=
"../../include/nodes/parsenodes.h"
>
RangeTableEntry,
</A>
and they
...
@@ -39,19 +39,19 @@ are linked together to form the <I>range table</I> of the query, which is
...
@@ -39,19 +39,19 @@ are linked together to form the <I>range table</I> of the query, which is
generated by
<A
HREF=
"../../backend/parser/parse_clause.c"
>
generated by
<A
HREF=
"../../backend/parser/parse_clause.c"
>
makeRangeTable().
</A>
Query.rtable holds the query's range table.
makeRangeTable().
</A>
Query.rtable holds the query's range table.
<P>
<P>
Certain queries, like
<
CODE>
SELECT,
</CODE
>
return columns of data. Other
Certain queries, like
<
I>
SELECT,
</I
>
return columns of data. Other
queries, like
<
CODE>
INSERT
</CODE>
and
<CODE>
UPDATE,
</CODE
>
specify the columns
queries, like
<
I>
INSERT
</I>
and
<I>
UPDATE,
</I
>
specify the columns
modified by the query. These column references are converted to
<A
modified by the query. These column references are converted to
<A
HREF=
"../../include/nodes/primnodes.h"
>
Resdom
</A>
entries, which are
HREF=
"../../include/nodes/primnodes.h"
>
Resdom
</A>
entries, which are
linked together to make up the
<I>
target list
</I>
of the query. The
linked together to make up the
<I>
target list
</I>
of the query. The
target list is stored in Query.targetList, which is generated by
target list is stored in Query.targetList, which is generated by
<A
HREF=
"../../backend/parser/parse_target.c"
>
transformTargetList().
</A>
<A
HREF=
"../../backend/parser/parse_target.c"
>
transformTargetList().
</A>
<P>
<P>
Other query elements, like aggregates(
<
CODE>
SUM()
</CODE>
),
<CODE>
GROUP BY,
</CODE
>
Other query elements, like aggregates(
<
I>
SUM()
</I>
),
<I>
GROUP BY,
</I
>
and
<
CODE>
ORDER BY
</CODE
>
are also stored in their own Query fields.
and
<
I>
ORDER BY
</I
>
are also stored in their own Query fields.
<P>
<P>
The next step is for the Query to be modified by any
<
CODE>
VIEWS
</CODE
>
or
The next step is for the Query to be modified by any
<
I>
VIEWS
</I
>
or
<
CODE>
RULES
</CODE
>
that may apply to the query. This is performed by the
<A
<
I>
RULES
</I
>
that may apply to the query. This is performed by the
<A
HREF=
"../../backend/rewrite"
>
rewrite
</A>
system.
HREF=
"../../backend/rewrite"
>
rewrite
</A>
system.
<P>
<P>
The
<A
HREF=
"../../backend/optimizer"
>
optimizer
</A>
takes the Query
The
<A
HREF=
"../../backend/optimizer"
>
optimizer
</A>
takes the Query
...
@@ -60,7 +60,7 @@ HREF="../..//include/nodes/plannodes.h">Plan,</A> which contains the
...
@@ -60,7 +60,7 @@ HREF="../..//include/nodes/plannodes.h">Plan,</A> which contains the
operations to be performed to execute the query. The
<A
operations to be performed to execute the query. The
<A
HREF=
"../../backend/optimizer/path"
>
path
</A>
module determines the best
HREF=
"../../backend/optimizer/path"
>
path
</A>
module determines the best
table join order and join type of each table in the RangeTable, using
table join order and join type of each table in the RangeTable, using
Query.qual(
<
CODE>
WHERE
</CODE
>
clause) to consider optimal index usage.
Query.qual(
<
I>
WHERE
</I
>
clause) to consider optimal index usage.
<P>
<P>
The Plan is then passed to the
<A
The Plan is then passed to the
<A
HREF=
"../../backend/executor"
>
executor
</A>
for execution, and the result
HREF=
"../../backend/executor"
>
executor
</A>
for execution, and the result
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录