diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c index 12bb61f..0222485 100644 --- a/src/backend/optimizer/path/allpaths.c +++ b/src/backend/optimizer/path/allpaths.c @@ -1018,6 +1018,8 @@ set_append_rel_size(PlannerInfo *root, RelOptInfo *rel, ListCell *parentvars; ListCell *childvars; PlannerInfo *subroot = root; + bool child_is_target = + (appinfo->parent_relid == root->parse->resultRelation); /* append_rel_list contains all append rels; ignore others */ if (appinfo->parent_relid != parentRTindex) @@ -1071,7 +1073,7 @@ set_append_rel_size(PlannerInfo *root, RelOptInfo *rel, * child relation that will be suitable to use the child also as the * target relation. */ - if (appinfo->parent_relid == root->parse->resultRelation) + if (child_is_target) subroot = adjust_inherit_target_child(root, childrel, appinfo); /* @@ -1087,7 +1089,7 @@ set_append_rel_size(PlannerInfo *root, RelOptInfo *rel, */ if (rel->has_eclass_joins || has_useful_pathkeys(root, rel)) add_child_rel_equivalences(subroot, appinfo, rel, childrel, - root != subroot); + child_is_target); childrel->has_eclass_joins = rel->has_eclass_joins; /* CE failed, so finish copying/modifying join quals. */ @@ -1139,7 +1141,7 @@ set_append_rel_size(PlannerInfo *root, RelOptInfo *rel, * If we modified subroot for the target inheritance case, add it * to root->inh_target_child_roots. */ - if (subroot != root) + if (child_is_target) { root->inh_target_child_roots = lappend(root->inh_target_child_roots, subroot);