*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
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;
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
* 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;