diff options
Diffstat (limited to 'src/backend/optimizer/plan/planner.c')
-rw-r--r-- | src/backend/optimizer/plan/planner.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index 320caebd874..8674ad674d9 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -1044,10 +1044,11 @@ subquery_planner(PlannerGlobal *glob, Query *parse, /* * If we have any RTE_RESULT relations, see if they can be deleted from - * the jointree. This step is most effectively done after we've done - * expression preprocessing and outer join reduction. + * the jointree. We also rely on this processing to flatten single-child + * FromExprs underneath outer joins. This step is most effectively done + * after we've done expression preprocessing and outer join reduction. */ - if (hasResultRTEs) + if (hasResultRTEs || hasOuterJoins) remove_useless_result_rtes(root); /* |