1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-07 19:06:32 +03:00

More optimizer cleanups.

This commit is contained in:
Bruce Momjian
1999-02-04 03:19:11 +00:00
parent 18fbe4142f
commit ce3afccf7f
9 changed files with 49 additions and 39 deletions

View File

@@ -1,3 +1,6 @@
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)

View File

@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/hashutils.c,v 1.10 1999/02/04 01:46:57 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/hashutils.c,v 1.11 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);

View File

@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.13 1999/02/04 01:46:57 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.14 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;
MInfo *xmergeinfo = (MInfo *) NULL;
MergeInfo *xmergeinfo = (MergeInfo *) 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 = (MergeInfo *) 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;
MInfo *xmergeinfo = (MInfo *) NULL;
MergeInfo *xmergeinfo = (MergeInfo *) NULL;
outerpath = (Path *) lfirst(i);
@@ -465,7 +464,7 @@ match_unsorted_inner(RelOptInfo * joinrel,
foreach(i, innerpath_list)
{
MInfo *xmergeinfo = (MInfo *) NULL;
MergeInfo *xmergeinfo = (MergeInfo *) 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;

View File

@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/mergeutils.c,v 1.11 1999/02/03 21:16:27 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/mergeutils.c,v 1.12 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;
MergeInfo *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(MergeInfo);
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 *
MergeInfo *
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)
{
MInfo *mergeinfo = (MInfo *) lfirst(xmergeinfo);
MergeInfo *mergeinfo = (MergeInfo *) lfirst(xmergeinfo);
xmergeorder = mergeinfo->m_ordering;
@@ -123,5 +123,5 @@ match_order_mergeinfo(PathOrder *ordering, List *mergeinfo_list)
return mergeinfo;
}
}
return (MInfo *) NIL;
return (MergeInfo *) NIL;
}