diff options
author | Bruce Momjian | 1999-02-11 05:29:08 +0000 |
---|---|---|
committer | Bruce Momjian | 1999-02-11 05:29:08 +0000 |
commit | 129543e22d6ee79038ad91f649accf9856686d23 (patch) | |
tree | 99830df972e7842385997cd2ad17ab3f8d56c1a4 | |
parent | dbd80c97f4d04ddbe6f9208fcbd21d11a2b29e0f (diff) |
optimizer cleanup
-rw-r--r-- | src/backend/optimizer/path/joinutils.c | 5 | ||||
-rw-r--r-- | src/backend/optimizer/util/pathnode.c | 13 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/backend/optimizer/path/joinutils.c b/src/backend/optimizer/path/joinutils.c index 4292bc4af24..d57d0d6d13a 100644 --- a/src/backend/optimizer/path/joinutils.c +++ b/src/backend/optimizer/path/joinutils.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/joinutils.c,v 1.16 1999/02/10 21:02:39 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/joinutils.c,v 1.17 1999/02/11 05:29:07 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -373,8 +373,7 @@ new_join_pathkey(List *subkeys, if (tlist_key) { if (!member(tlist_key, matched_subkeys)) - newly_considered_subkeys = lcons(tlist_key, - matched_subkeys); + newly_considered_subkeys = lcons(tlist_key, matched_subkeys); } else newly_considered_subkeys = matched_subkeys; diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c index 02360d74f08..28ab4573741 100644 --- a/src/backend/optimizer/util/pathnode.c +++ b/src/backend/optimizer/util/pathnode.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.24 1999/02/11 04:08:43 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.25 1999/02/11 05:29:08 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -195,14 +195,19 @@ better_path(Path *new_path, List *unique_paths, bool *is_new) * more expensive and replace unordered path with ordered * path if it is not more expensive. */ + + /* same keys, and new is cheaper, use it */ if ((longer_key == 0 && new_path->path_cost < path->path_cost) || - (longer_key == 1 && new_path->path_cost <= path->path_cost) || - (longer_key == 2 && new_path->path_cost >= path->path_cost)) + /* new is longer, and cheaper, use it */ + (longer_key == 1 && new_path->path_cost <= path->path_cost)) { *is_new = false; return new_path; } - else + /* same keys, new is more expensive, stop */ + else if ((longer_key == 0 && new_path->path_cost >= path->path_cost) || + /* old is longer, and less expensive, stop */ + (longer_key == 2 && new_path->path_cost >= path->path_cost)) { *is_new = false; return NULL; |