1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-05 07:21:24 +03:00

optimizer cleanup

This commit is contained in:
Bruce Momjian
1999-02-11 05:29:08 +00:00
parent dbd80c97f4
commit 129543e22d
2 changed files with 11 additions and 7 deletions

View File

@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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 (tlist_key)
{ {
if (!member(tlist_key, matched_subkeys)) if (!member(tlist_key, matched_subkeys))
newly_considered_subkeys = lcons(tlist_key, newly_considered_subkeys = lcons(tlist_key, matched_subkeys);
matched_subkeys);
} }
else else
newly_considered_subkeys = matched_subkeys; newly_considered_subkeys = matched_subkeys;

View File

@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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 * more expensive and replace unordered path with ordered
* path if it is not more expensive. * 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) || if ((longer_key == 0 && new_path->path_cost < path->path_cost) ||
(longer_key == 1 && new_path->path_cost <= path->path_cost) || /* new is longer, and cheaper, use it */
(longer_key == 2 && new_path->path_cost >= path->path_cost)) (longer_key == 1 && new_path->path_cost <= path->path_cost))
{ {
*is_new = false; *is_new = false;
return new_path; 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; *is_new = false;
return NULL; return NULL;