Hi:
For a given level for join_search_one_level, it is always try to join every relation
in joinrel[level-1] to *initial_rels*. but the current code doesn't show this directly.
join_search_one_level
if (level == 2) /* consider remaining initial rels */
{
other_rels_list = joinrels[level - 1];
other_rels = lnext(other_rels_list, r);
}
else /* consider all initial rels */
{
other_rels_list = joinrels[1];
other_rels = list_head(other_rels_list);
}
make_rels_by_clause_joins(root,
old_rel,
other_rels_list,
other_rels);
I'd like to remove the parameter and use root->inital_rels directly. I did the same
for make_rels_by_clauseless_joins. The attached is my proposal which should be
semantic correctly and more explicitly.
Best Regards
Andy Fan