diff --git a/src/backend/optimizer/path/equivclass.c b/src/backend/optimizer/path/equivclass.c
index 711b161..734ed47 100644
--- a/src/backend/optimizer/path/equivclass.c
+++ b/src/backend/optimizer/path/equivclass.c
@@ -1940,6 +1940,7 @@ add_child_rel_equivalences(PlannerInfo *root,
 				Expr	   *child_expr;
 				Relids		new_relids;
 				Relids		new_nullable_relids;
+				bool		has_children = false;
 
 				child_expr = (Expr *)
 					adjust_appendrel_attrs(root,
@@ -1969,9 +1970,15 @@ add_child_rel_equivalences(PlannerInfo *root,
 														  child_rel->relids);
 				}
 
+				/*
+				 * Does this child_rel have children? If and only if so, tell
+				 * add_eq_member to register new_relids to cur_ec.
+				 */
+				has_children =
+					root->simple_rte_array[child_rel->relid]->inh;
 				(void) add_eq_member(cur_ec, child_expr,
 									 new_relids, new_nullable_relids,
-									 true, cur_em->em_datatype);
+									 !has_children, cur_em->em_datatype);
 			}
 		}
 	}
