diff options
Diffstat (limited to 'src/backend/optimizer/geqo/geqo_eval.c')
| -rw-r--r-- | src/backend/optimizer/geqo/geqo_eval.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/backend/optimizer/geqo/geqo_eval.c b/src/backend/optimizer/geqo/geqo_eval.c index 614ca47c84..1c70e4bcd8 100644 --- a/src/backend/optimizer/geqo/geqo_eval.c +++ b/src/backend/optimizer/geqo/geqo_eval.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: geqo_eval.c,v 1.47 2000/02/07 04:40:58 tgl Exp $ + * $Id: geqo_eval.c,v 1.48 2000/02/15 20:49:14 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -96,8 +96,13 @@ geqo_eval(Query *root, Gene *tour, int num_gene) /* construct the best path for the given combination of relations */ joinrel = gimme_tree(root, tour, 0, num_gene, NULL); - /* compute fitness */ - fitness = joinrel->cheapestpath->path_cost; + /* + * compute fitness + * + * XXX geqo does not currently support optimization for partial + * result retrieval --- how to fix? + */ + fitness = joinrel->cheapest_total_path->total_cost; /* restore join_rel_list */ root->join_rel_list = savelist; @@ -155,8 +160,8 @@ gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *old rel_count++; Assert(length(new_rel->relids) == rel_count); - /* Find and save the cheapest path for this rel */ - set_cheapest(new_rel, new_rel->pathlist); + /* Find and save the cheapest paths for this rel */ + set_cheapest(new_rel); return gimme_tree(root, tour, rel_count, num_gene, new_rel); } |
