OSDN Git Service

allpaths.c:find_join_paths(): compute_rel_size() shouldn't be called
authorVadim B. Mikheev <vadim4o@yahoo.com>
Thu, 5 Jun 1997 09:33:52 +0000 (09:33 +0000)
committerVadim B. Mikheev <vadim4o@yahoo.com>
Thu, 5 Jun 1997 09:33:52 +0000 (09:33 +0000)
for join-relations. Sizes already computed by
prune_rel_paths():compute_joinrel_size().

joinrels.c:
<                   if ( _use_right_sided_plans_ )
---
>                   if ( _use_right_sided_plans_ &&
>                               length (outer_rel->relids) > 1 )

 - r_plans are useful when outer_rel is join-relation... It
decreases the size of search space...

src/backend/optimizer/path/allpaths.c
src/backend/optimizer/path/joinrels.c

index 6469e7e..506bab2 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.8 1997/06/02 11:14:40 vadim Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.9 1997/06/05 09:33:50 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -216,7 +216,9 @@ find_join_paths(Query *root, List *outer_rels, int levels_left)
 
     foreach(x, new_rels) {
        rel = (Rel*)lfirst(x);
+#if 0  /* compute_joinrel_size already called by prune_rel_paths */
        rel->size = compute_rel_size(rel);
+#endif
        rel->width = compute_rel_width(rel);
 
 /*#define OPTIMIZER_DEBUG*/
index a640988..00f8a04 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.3 1997/05/20 10:37:26 vadim Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.4 1997/06/05 09:33:52 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -110,7 +110,8 @@ find_clause_joins(Query *root, Rel *outer_rel, List *joininfo_list)
                                        get_base_rel(root, lfirsti(other_rels)),
                                        joininfo);
                    /* how about right-sided plan ? */
-                   if ( _use_right_sided_plans_ )
+                   if ( _use_right_sided_plans_ && 
+                               length (outer_rel->relids) > 1 )
                    {
                        if (rel != NULL)
                            join_list = lappend(join_list, rel);