diff options
Diffstat (limited to 'src/backend/optimizer/geqo')
-rw-r--r-- | src/backend/optimizer/geqo/geqo_eval.c | 64 | ||||
-rw-r--r-- | src/backend/optimizer/geqo/geqo_main.c | 8 | ||||
-rw-r--r-- | src/backend/optimizer/geqo/geqo_misc.c | 4 | ||||
-rw-r--r-- | src/backend/optimizer/geqo/geqo_paths.c | 18 | ||||
-rw-r--r-- | src/backend/optimizer/geqo/minspantree.c | 30 |
5 files changed, 62 insertions, 62 deletions
diff --git a/src/backend/optimizer/geqo/geqo_eval.c b/src/backend/optimizer/geqo/geqo_eval.c index 7430b34bccd..efd94dda460 100644 --- a/src/backend/optimizer/geqo/geqo_eval.c +++ b/src/backend/optimizer/geqo/geqo_eval.c @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: geqo_eval.c,v 1.19 1998/06/15 19:28:35 momjian Exp $ + * $Id: geqo_eval.c,v 1.20 1998/07/18 04:22:27 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -50,13 +50,13 @@ #include "optimizer/geqo_paths.h" -static List *gimme_clause_joins(Query *root, Rel *outer_rel, Rel *inner_rel); -static Rel *gimme_clauseless_join(Rel *outer_rel, Rel *inner_rel); -static Rel *init_join_rel(Rel *outer_rel, Rel *inner_rel, JInfo *joininfo); +static List *gimme_clause_joins(Query *root, RelOptInfo *outer_rel, RelOptInfo *inner_rel); +static RelOptInfo *gimme_clauseless_join(RelOptInfo *outer_rel, RelOptInfo *inner_rel); +static RelOptInfo *init_join_rel(RelOptInfo *outer_rel, RelOptInfo *inner_rel, JInfo *joininfo); static List *new_join_tlist(List *tlist, List *other_relids, int first_resdomno); static List *new_joininfo_list(List *joininfo_list, List *join_relids); -static void geqo_joinrel_size(Rel *joinrel, Rel *outer_rel, Rel *inner_rel); -static Rel *geqo_nth(int stop, List *rels); +static void geqo_joinrel_size(RelOptInfo *joinrel, RelOptInfo *outer_rel, RelOptInfo *inner_rel); +static RelOptInfo *geqo_nth(int stop, List *rels); /* * geqo_eval-- @@ -66,7 +66,7 @@ static Rel *geqo_nth(int stop, List *rels); Cost geqo_eval(Query *root, Gene *tour, int num_gene) { - Rel *joinrel; + RelOptInfo *joinrel; Cost fitness; List *temp; @@ -98,14 +98,14 @@ geqo_eval(Query *root, Gene *tour, int num_gene) * * Returns a new join relation incorporating all joins in a left-sided tree. */ -Rel * -gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, Rel *outer_rel) +RelOptInfo * +gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *outer_rel) { - Rel *inner_rel; /* current relation */ + RelOptInfo *inner_rel; /* current relation */ int base_rel_index; List *new_rels = NIL; - Rel *new_rel = NULL; + RelOptInfo *new_rel = NULL; if (rel_count < num_gene) { /* tree not yet finished */ @@ -113,7 +113,7 @@ gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, Rel *outer_rel) /* tour[0] = 3; tour[1] = 1; tour[2] = 2 */ base_rel_index = (int) tour[rel_count]; - inner_rel = (Rel *) geqo_nth(base_rel_index, root->base_relation_list_); + inner_rel = (RelOptInfo *) geqo_nth(base_rel_index, root->base_relation_list_); if (rel_count == 0) { /* processing first join with @@ -158,7 +158,7 @@ gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, Rel *outer_rel) } /* get essential new relation */ - new_rel = (Rel *) lfirst(new_rels); + new_rel = (RelOptInfo *) lfirst(new_rels); rel_count++; /* process new_rel->cheapestpath, new_rel->unorderedpath */ @@ -189,7 +189,7 @@ gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, Rel *outer_rel) */ static List * -gimme_clause_joins(Query *root, Rel *outer_rel, Rel *inner_rel) +gimme_clause_joins(Query *root, RelOptInfo *outer_rel, RelOptInfo *inner_rel) { List *join_list = NIL; List *i = NIL; @@ -198,7 +198,7 @@ gimme_clause_joins(Query *root, Rel *outer_rel, Rel *inner_rel) foreach(i, joininfo_list) { JInfo *joininfo = (JInfo *) lfirst(i); - Rel *rel = NULL; + RelOptInfo *rel = NULL; if (!joininfo->inactive) { @@ -239,8 +239,8 @@ gimme_clause_joins(Query *root, Rel *outer_rel, Rel *inner_rel) * Returns a new join relation. */ -static Rel * -gimme_clauseless_join(Rel *outer_rel, Rel *inner_rel) +static RelOptInfo * +gimme_clauseless_join(RelOptInfo *outer_rel, RelOptInfo *inner_rel) { return (init_join_rel(outer_rel, inner_rel, (JInfo *) NULL)); } @@ -256,10 +256,10 @@ gimme_clauseless_join(Rel *outer_rel, Rel *inner_rel) * * Returns the new join relation node. */ -static Rel * -init_join_rel(Rel *outer_rel, Rel *inner_rel, JInfo *joininfo) +static RelOptInfo * +init_join_rel(RelOptInfo *outer_rel, RelOptInfo *inner_rel, JInfo *joininfo) { - Rel *joinrel = makeNode(Rel); + RelOptInfo *joinrel = makeNode(RelOptInfo); List *joinrel_joininfo_list = NIL; List *new_outer_tlist; List *new_inner_tlist; @@ -457,7 +457,7 @@ geqo_add_new_joininfos(Query *root, List *joinrels, List *outerrels) List *xrel = NIL; List *xjoininfo = NIL; - Rel *rel; + RelOptInfo *rel; List *relids; List *super_rels; @@ -466,7 +466,7 @@ geqo_add_new_joininfos(Query *root, List *joinrels, List *outerrels) foreach(xjoinrel, joinrels) { - Rel *joinrel = (Rel *) lfirst(xjoinrel); + RelOptInfo *joinrel = (RelOptInfo *) lfirst(xjoinrel); foreach(xrelid, joinrel->relids) { @@ -477,7 +477,7 @@ geqo_add_new_joininfos(Query *root, List *joinrels, List *outerrels) */ /* - * ! BUG BUG ! Relid relid = (Relid)lfirst(xrelid); Rel *rel = + * ! BUG BUG ! Relid relid = (Relid)lfirst(xrelid); RelOptInfo *rel = * get_join_rel(root, relid); */ @@ -502,7 +502,7 @@ geqo_add_new_joininfos(Query *root, List *joinrels, List *outerrels) } foreach(xjoinrel, joinrels) { - Rel *joinrel = (Rel *) lfirst(xjoinrel); + RelOptInfo *joinrel = (RelOptInfo *) lfirst(xjoinrel); foreach(xjoininfo, joinrel->joininfo) { @@ -516,7 +516,7 @@ geqo_add_new_joininfos(Query *root, List *joinrels, List *outerrels) { /* - * ! BUG BUG ! Relid relid = (Relid)lfirst(xrelid); Rel + * ! BUG BUG ! Relid relid = (Relid)lfirst(xrelid); RelOptInfo * *rel = get_join_rel(root, relid); */ @@ -549,7 +549,7 @@ geqo_add_new_joininfos(Query *root, List *joinrels, List *outerrels) foreach(xsuper_rel, super_rels) { - Rel *super_rel = (Rel *) lfirst(xsuper_rel); + RelOptInfo *super_rel = (RelOptInfo *) lfirst(xsuper_rel); if (nonoverlap_rels(super_rel, joinrel)) { @@ -584,7 +584,7 @@ geqo_add_new_joininfos(Query *root, List *joinrels, List *outerrels) } foreach(xrel, outerrels) { - rel = (Rel *) lfirst(xrel); + rel = (RelOptInfo *) lfirst(xrel); rel->superrels = NIL; } } @@ -611,7 +611,7 @@ geqo_final_join_rels(List *join_rel_list) */ foreach(xrel, join_rel_list) { - Rel *rel = (Rel *) lfirst(xrel); + RelOptInfo *rel = (RelOptInfo *) lfirst(xrel); List *xjoininfo = NIL; bool final = true; @@ -645,7 +645,7 @@ geqo_final_join_rels(List *join_rel_list) * Modifies the superrels field of rel */ static void -add_superrels(Rel *rel, Rel *super_rel) +add_superrels(RelOptInfo *rel, RelOptInfo *super_rel) { rel->superrels = lappend(rel->superrels, super_rel); } @@ -660,7 +660,7 @@ add_superrels(Rel *rel, Rel *super_rel) * Returns non-nil if rel1 and rel2 do not overlap. */ static bool -nonoverlap_rels(Rel *rel1, Rel *rel2) +nonoverlap_rels(RelOptInfo *rel1, RelOptInfo *rel2) { return (nonoverlap_sets(rel1->relids, rel2->relids)); } @@ -688,7 +688,7 @@ nonoverlap_sets(List *s1, List *s2) * long join queries; so get logarithm of size when MAXINT overflow; */ static void -geqo_joinrel_size(Rel *joinrel, Rel *outer_rel, Rel *inner_rel) +geqo_joinrel_size(RelOptInfo *joinrel, RelOptInfo *outer_rel, RelOptInfo *inner_rel) { Cost temp; int ntuples; @@ -715,7 +715,7 @@ geqo_log(double x, double b) return (log(x) / log(b)); } -static Rel * +static RelOptInfo * geqo_nth(int stop, List *rels) { List *r; diff --git a/src/backend/optimizer/geqo/geqo_main.c b/src/backend/optimizer/geqo/geqo_main.c index 2073416c2e4..37f6ab1533d 100644 --- a/src/backend/optimizer/geqo/geqo_main.c +++ b/src/backend/optimizer/geqo/geqo_main.c @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: geqo_main.c,v 1.7 1998/02/26 04:32:22 momjian Exp $ + * $Id: geqo_main.c,v 1.8 1998/07/18 04:22:27 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -63,7 +63,7 @@ * similar to a constrained Traveling Salesman Problem (TSP) */ -Rel * +RelOptInfo * geqo(Query *root) { int generation; @@ -98,7 +98,7 @@ geqo(Query *root) status_interval; Gene *best_tour; - Rel *best_rel; + RelOptInfo *best_rel; /* Plan *best_plan; */ @@ -254,7 +254,7 @@ geqo(Query *root) best_tour = (Gene *) pool->data[0].string; /* root->join_relation_list_ will be modified during this ! */ - best_rel = (Rel *) gimme_tree(root, best_tour, 0, pool->string_length, NULL); + best_rel = (RelOptInfo *) gimme_tree(root, best_tour, 0, pool->string_length, NULL); /* DBG: show the query plan print_plan(best_plan, root); diff --git a/src/backend/optimizer/geqo/geqo_misc.c b/src/backend/optimizer/geqo/geqo_misc.c index 99b968ec3b6..ce915a5f2c8 100644 --- a/src/backend/optimizer/geqo/geqo_misc.c +++ b/src/backend/optimizer/geqo/geqo_misc.c @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: geqo_misc.c,v 1.8 1998/06/15 19:28:35 momjian Exp $ + * $Id: geqo_misc.c,v 1.9 1998/07/18 04:22:28 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -262,7 +262,7 @@ geqo_print_path(Query *root, Path *path, int indent) } void -geqo_print_rel(Query *root, Rel *rel) +geqo_print_rel(Query *root, RelOptInfo *rel) { List *l; diff --git a/src/backend/optimizer/geqo/geqo_paths.c b/src/backend/optimizer/geqo/geqo_paths.c index a46a6c30a03..8bc75c2349a 100644 --- a/src/backend/optimizer/geqo/geqo_paths.c +++ b/src/backend/optimizer/geqo/geqo_paths.c @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: geqo_paths.c,v 1.9 1998/06/15 19:28:37 momjian Exp $ + * $Id: geqo_paths.c,v 1.10 1998/07/18 04:22:28 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -28,8 +28,8 @@ #include "optimizer/geqo_paths.h" -static List *geqo_prune_rel(Rel *rel, List *other_rels); -static Path *set_paths(Rel *rel, Path *unorderedpath); +static List *geqo_prune_rel(RelOptInfo *rel, List *other_rels); +static Path *set_paths(RelOptInfo *rel, Path *unorderedpath); /* * geqo-prune-rels-- @@ -47,7 +47,7 @@ geqo_prune_rels(List *rel_list) if (rel_list != NIL) { temp_list = lcons(lfirst(rel_list), - geqo_prune_rels(geqo_prune_rel((Rel *) lfirst(rel_list), + geqo_prune_rels(geqo_prune_rel((RelOptInfo *) lfirst(rel_list), lnext(rel_list)))); } return (temp_list); @@ -65,16 +65,16 @@ geqo_prune_rels(List *rel_list) * */ static List * -geqo_prune_rel(Rel *rel, List *other_rels) +geqo_prune_rel(RelOptInfo *rel, List *other_rels) { List *i = NIL; List *t_list = NIL; List *temp_node = NIL; - Rel *other_rel = (Rel *) NULL; + RelOptInfo *other_rel = (RelOptInfo *) NULL; foreach(i, other_rels) { - other_rel = (Rel *) lfirst(i); + other_rel = (RelOptInfo *) lfirst(i); if (same(rel->relids, other_rel->relids)) { rel->pathlist = add_pathlist(rel, @@ -102,7 +102,7 @@ geqo_prune_rel(Rel *rel, List *other_rels) * */ void -geqo_rel_paths(Rel *rel) +geqo_rel_paths(RelOptInfo *rel) { List *y = NIL; Path *path = (Path *) NULL; @@ -134,7 +134,7 @@ geqo_rel_paths(Rel *rel) * */ static Path * -set_paths(Rel *rel, Path *unorderedpath) +set_paths(RelOptInfo *rel, Path *unorderedpath) { Path *cheapest = set_cheapest(rel, rel->pathlist); diff --git a/src/backend/optimizer/geqo/minspantree.c b/src/backend/optimizer/geqo/minspantree.c index 9d5eba97d68..6df11b75dd6 100644 --- a/src/backend/optimizer/geqo/minspantree.c +++ b/src/backend/optimizer/geqo/minspantree.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION -* $Header: /cvsroot/pgsql/src/backend/optimizer/geqo/Attic/minspantree.c,v 1.5 1998/06/15 19:28:38 momjian Exp $ +* $Header: /cvsroot/pgsql/src/backend/optimizer/geqo/Attic/minspantree.c,v 1.6 1998/07/18 04:22:29 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -41,7 +41,7 @@ */ void -minspantree(Query *root, List *join_rels, Rel *garel) +minspantree(Query *root, List *join_rels, RelOptInfo *garel) { int number_of_rels = length(root->base_relation_list_); int number_of_joins = length(join_rels); @@ -70,28 +70,28 @@ minspantree(Query *root, List *join_rels, Rel *garel) id1, id2; List *r = NIL; - Rel *joinrel = NULL; - Rel **tmprel_array; + RelOptInfo *joinrel = NULL; + RelOptInfo **tmprel_array; /* allocate memory for matrix tmprel_array[x][y] */ - tmprel_array = (Rel **) palloc((number_of_rels + 1) * sizeof(Rel *)); + tmprel_array = (RelOptInfo **) palloc((number_of_rels + 1) * sizeof(RelOptInfo *)); for (i = 0; i <= number_of_rels; i++) - (tmprel_array[i] = (Rel *) palloc((number_of_rels + 1) * sizeof(Rel))); + (tmprel_array[i] = (RelOptInfo *) palloc((number_of_rels + 1) * sizeof(RelOptInfo))); /* read relations of join-relations into tmprel_array */ foreach(r, join_rels) { - joinrel = (Rel *) lfirst(r); + joinrel = (RelOptInfo *) lfirst(r); id1 = (int) lfirst(joinrel->relids); id2 = (int) lsecond(joinrel->relids); if (id1 > id2) - tmprel_array[id2][id1] = *(Rel *) joinrel; + tmprel_array[id2][id1] = *(RelOptInfo *) joinrel; else { - tmprel_array[id1][id2] = *(Rel *) joinrel; /* ever reached? */ + tmprel_array[id1][id2] = *(RelOptInfo *) joinrel; /* ever reached? */ } } @@ -103,7 +103,7 @@ minspantree(Query *root, List *join_rels, Rel *garel) i = 1; foreach(r, join_rels) { - garel[i] = *(Rel *) lfirst(r); + garel[i] = *(RelOptInfo *) lfirst(r); i++; } } @@ -111,9 +111,9 @@ minspantree(Query *root, List *join_rels, Rel *garel) else if (number_of_joins == 3) { - Rel *rel12 = (Rel *) &tmprel_array[1][2]; - Rel *rel13 = (Rel *) &tmprel_array[1][3]; - Rel *rel23 = (Rel *) &tmprel_array[2][3]; + RelOptInfo *rel12 = (RelOptInfo *) &tmprel_array[1][2]; + RelOptInfo *rel13 = (RelOptInfo *) &tmprel_array[1][3]; + RelOptInfo *rel23 = (RelOptInfo *) &tmprel_array[2][3]; if (rel12->cheapestpath->path_cost > rel13->cheapestpath->path_cost) { @@ -159,9 +159,9 @@ minspantree(Query *root, List *join_rels, Rel *garel) if (connectto[tempn] != 0) { if (n > tempn) - joinrel = (Rel *) &tmprel_array[tempn][n]; + joinrel = (RelOptInfo *) &tmprel_array[tempn][n]; else - joinrel = (Rel *) &tmprel_array[n][tempn]; + joinrel = (RelOptInfo *) &tmprel_array[n][tempn]; dist = joinrel->cheapestpath->path_cost; if (dist < disttoconnect[tempn]) |