Hi

I was looking at pull_up_subqueries (backend/optimizer/prep/prepjointree.c 135) and I was wondering why the recursive optimization is only done on subqueries that can be optimized.
As in, why isn't the code like:


if (rte->rtekind == RTE_SUBQUERY) {
           subquery = copyObject(subquery);
           if (subquery->hasSubLinks)
               subquery->jointree->quals = pull_up_IN_clauses(subquery,
                                             subquery->jointree->quals);
           subquery->jointree = (FromExpr *)
               pull_up_subqueries(subquery, (Node *) subquery->jointree,
                                  false);
       if (is_simple_subquery(subquery) &&
           (!below_outer_join || has_nullable_targetlist(subquery)) &&
           !contain_whole_tuple_var((Node *) parse, varno, 0))
     {
         //optimize the subquery up
     }
}


-- Dennis



---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to