diff --git a/src/backend/optimizer/path/joinrels.c b/src/backend/optimizer/path/joinrels.c index e7e9a1a..8ec1af8 100644 --- a/src/backend/optimizer/path/joinrels.c +++ b/src/backend/optimizer/path/joinrels.c @@ -96,6 +96,10 @@ join_search_one_level(PlannerInfo *root, int level) make_rels_by_clause_joins(root, old_rel, other_rels); + /* If we are in a star schema we have to try everything */ + make_rels_by_clauseless_joins(root, + old_rel, + other_rels); } else { @@ -147,10 +151,11 @@ join_search_one_level(PlannerInfo *root, int level) * participate in join-order restrictions --- then we might have * to force a bushy join plan. */ +/* if (old_rel->joininfo == NIL && !old_rel->has_eclass_joins && !has_join_restriction(root, old_rel)) continue; - +*/ if (k == other_level) other_rels = lnext(r); /* only consider remaining rels */ else @@ -167,11 +172,15 @@ join_search_one_level(PlannerInfo *root, int level) * pair of rels. Do so if there is at least one relevant * join clause or join order restriction. */ +/* if (have_relevant_joinclause(root, old_rel, new_rel) || have_join_order_restriction(root, old_rel, new_rel)) { +*/ (void) make_join_rel(root, old_rel, new_rel); +/* } +*/ } } }