|
7 | 7 | *
|
8 | 8 | *
|
9 | 9 | * IDENTIFICATION
|
10 |
| - * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.2 1997/02/2002:54:09 vadim Exp $ |
| 10 | + * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.3 1997/05/2010:37:26 vadim Exp $ |
11 | 11 | *
|
12 | 12 | *-------------------------------------------------------------------------
|
13 | 13 | */
|
|
23 | 23 | #include"optimizer/joininfo.h"
|
24 | 24 | #include"optimizer/pathnode.h"
|
25 | 25 |
|
| 26 | +#ifdefUSE_RIGHT_SIDED_PLANS |
| 27 | +bool_use_right_sided_plans_= true; |
| 28 | +#else |
| 29 | +bool_use_right_sided_plans_= false; |
| 30 | +#endif |
26 | 31 |
|
27 | 32 | staticList*find_clause_joins(Query*root,Rel*outer_rel,List*joininfo_list);
|
28 | 33 | staticList*find_clauseless_joins(Rel*outer_rel,List*inner_rels);
|
@@ -104,6 +109,15 @@ find_clause_joins(Query *root, Rel *outer_rel, List *joininfo_list)
|
104 | 109 | rel=init_join_rel(outer_rel,
|
105 | 110 | get_base_rel(root,lfirsti(other_rels)),
|
106 | 111 | joininfo);
|
| 112 | +/* how about right-sided plan ? */ |
| 113 | +if (_use_right_sided_plans_ ) |
| 114 | + { |
| 115 | +if (rel!=NULL) |
| 116 | +join_list=lappend(join_list,rel); |
| 117 | +rel=init_join_rel(get_base_rel(root,lfirsti(other_rels)), |
| 118 | +outer_rel, |
| 119 | +joininfo); |
| 120 | + } |
107 | 121 | }elseif (BushyPlanFlag) {
|
108 | 122 | rel=init_join_rel(outer_rel,
|
109 | 123 | get_join_rel(root,other_rels),
|
|