diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 7935d6b995..7b234224e1 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.60 1999/02/04 01:46:53 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.61 1999/02/04 03:19:06 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1397,13 +1397,13 @@ _copyHashInfo(HashInfo *from) } /* ---------------- - * _copyMInfo + * _copyMergeInfo * ---------------- */ -static MInfo * -_copyMInfo(MInfo *from) +static MergeInfo * +_copyMergeInfo(MergeInfo *from) { - MInfo *newnode = makeNode(MInfo); + MergeInfo *newnode = makeNode(MergeInfo); /* ---------------- * 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_MergeInfo: + retval = _copyMergeInfo(from); break; case T_JoinInfo: retval = _copyJoinInfo(from); diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index fc7a1b4438..f3ac661b0a 100644 --- a/src/backend/nodes/readfuncs.c +++ b/src/backend/nodes/readfuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.47 1999/02/04 01:46:54 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.48 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; diff --git a/src/backend/optimizer/README b/src/backend/optimizer/README index bf67e97e38..6d9dae115c 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 4cdf4752d3..1eebfa9b75 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 991290178f..7a5f4889b1 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 45882728b7..2896c4a6d8 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; } diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h index e0c45ea9e1..d001c33c99 100644 --- a/src/include/nodes/nodes.h +++ b/src/include/nodes/nodes.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: nodes.h,v 1.37 1999/02/04 01:47:00 momjian Exp $ + * $Id: nodes.h,v 1.38 1999/02/04 03:19:10 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -82,7 +82,7 @@ typedef enum NodeTag T_RestrictInfo, T_JoinMethod, T_HashInfo, - T_MInfo, + T_MergeInfo, T_JoinInfo, T_Iter, T_Stream, diff --git a/src/include/nodes/relation.h b/src/include/nodes/relation.h index b0feae341f..45bb715e67 100644 --- a/src/include/nodes/relation.h +++ b/src/include/nodes/relation.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: relation.h,v 1.13 1999/02/04 01:47:02 momjian Exp $ + * $Id: relation.h,v 1.14 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 MergeInfo { JoinMethod jmethod; MergeOrder *m_ordering; -} MInfo; +} MergeInfo; typedef struct JoinInfo { diff --git a/src/include/optimizer/paths.h b/src/include/optimizer/paths.h index 99f2edc488..babcd84eaa 100644 --- a/src/include/optimizer/paths.h +++ b/src/include/optimizer/paths.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: paths.h,v 1.11 1999/02/03 20:15:53 momjian Exp $ + * $Id: paths.h,v 1.12 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 MergeInfo *match_order_mergeinfo(PathOrder *ordering, List *mergeinfo_list); /*