diff options
Diffstat (limited to 'src/backend/optimizer/plan/setrefs.c')
-rw-r--r-- | src/backend/optimizer/plan/setrefs.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c index 5e949850646..aa2c3084fc8 100644 --- a/src/backend/optimizer/plan/setrefs.c +++ b/src/backend/optimizer/plan/setrefs.c @@ -1641,12 +1641,12 @@ set_join_references(PlannerInfo *root, Join *join, int rtoffset) * * In most cases, we have to match up individual Vars in the tlist and * qual expressions with elements of the subplan's tlist (which was - * generated by flatten_tlist() from these selfsame expressions, so it - * should have all the required variables). There is an important exception, - * however: GROUP BY and ORDER BY expressions will have been pushed into the - * subplan tlist unflattened. If these values are also needed in the output - * then we want to reference the subplan tlist element rather than recomputing - * the expression. + * generated by flattening these selfsame expressions, so it should have all + * the required variables). There is an important exception, however: + * depending on where we are in the plan tree, sort/group columns may have + * been pushed into the subplan tlist unflattened. If these values are also + * needed in the output then we want to reference the subplan tlist element + * rather than recomputing the expression. */ static void set_upper_references(PlannerInfo *root, Plan *plan, int rtoffset) @@ -2129,7 +2129,8 @@ fix_join_expr_mutator(Node *node, fix_join_expr_context *context) * * An error is raised if no matching var can be found in the subplan tlist * --- so this routine should only be applied to nodes whose subplans' - * targetlists were generated via flatten_tlist() or some such method. + * targetlists were generated by flattening the expressions used in the + * parent node. * * If itlist->has_non_vars is true, then we try to match whole subexpressions * against elements of the subplan tlist, so that we can avoid recomputing |