diff options
Diffstat (limited to 'src/backend/optimizer')
-rw-r--r-- | src/backend/optimizer/README | 22 | ||||
-rw-r--r-- | src/backend/optimizer/path/hashutils.c | 4 | ||||
-rw-r--r-- | src/backend/optimizer/path/joinpath.c | 13 | ||||
-rw-r--r-- | src/backend/optimizer/path/mergeutils.c | 12 |
4 files changed, 31 insertions, 20 deletions
diff --git a/src/backend/optimizer/README b/src/backend/optimizer/README index bf67e97e382..6d9dae115c3 100644 --- a/src/backend/optimizer/README +++ b/src/backend/optimizer/README @@ -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) diff --git a/src/backend/optimizer/path/hashutils.c b/src/backend/optimizer/path/hashutils.c index 4cdf4752d37..1eebfa9b75d 100644 --- a/src/backend/optimizer/path/hashutils.c +++ b/src/backend/optimizer/path/hashutils.c @@ -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); diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c index 991290178f6..7a5f4889b16 100644 --- a/src/backend/optimizer/path/joinpath.c +++ b/src/backend/optimizer/path/joinpath.c @@ -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; diff --git a/src/backend/optimizer/path/mergeutils.c b/src/backend/optimizer/path/mergeutils.c index 45882728b7f..2896c4a6d81 100644 --- a/src/backend/optimizer/path/mergeutils.c +++ b/src/backend/optimizer/path/mergeutils.c @@ -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; } |