]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
optimizer update
authorBruce Momjian <bruce@momjian.us>
Fri, 12 Feb 1999 02:37:52 +0000 (02:37 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 12 Feb 1999 02:37:52 +0000 (02:37 +0000)
src/backend/optimizer/util/pathnode.c

index 23e3e8ee0c21c04fec8ba880c09f87f3a02b8162..43db1bd267f1682f829231865fab78a7e9b31d58 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.31 1999/02/11 21:05:28 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.32 1999/02/12 02:37:52 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -211,19 +211,25 @@ better_path(Path *new_path, List *unique_paths, bool *is_new)
                                  new_path->path_cost <= path->path_cost))
                        {
                                *is_new = false;
-                               return new_path;
+                               return path;
                        }
 
                                                        /* same keys, new is more expensive, stop */
-                   else if
-                               ((better_key == 0 && better_sort == 0 &&
-                                 new_path->path_cost >= path->path_cost) ||
+                       if ((better_key == 0 && better_sort == 0 &&
+                                new_path->path_cost >= path->path_cost) ||
 
                                                        /* old is better, and less expensive, stop */
                                (((better_key == 2 && better_sort != 1) ||
                                  (better_key != 1 && better_sort == 2)) &&
                                  new_path->path_cost >= path->path_cost))
                        {
+#ifdef OPTDB_DEBUG
+                               printf("better key %d better sort %d\n", better_key, better_sort);
+                               printf("new\n");
+                               pprint(new_path);
+                               printf("old\n");
+                               pprint(path);
+#endif
                                *is_new = false;
                                return NULL;
                        }