aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/geqo
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer/geqo')
-rw-r--r--src/backend/optimizer/geqo/geqo_eval.c64
-rw-r--r--src/backend/optimizer/geqo/geqo_main.c8
-rw-r--r--src/backend/optimizer/geqo/geqo_misc.c4
-rw-r--r--src/backend/optimizer/geqo/geqo_paths.c18
-rw-r--r--src/backend/optimizer/geqo/minspantree.c30
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])