diff --git a/src/backend/optimizer/path/equivclass.c b/src/backend/optimizer/path/equivclass.c
index b68a5a0ec7..454b3abe5c 100644
--- a/src/backend/optimizer/path/equivclass.c
+++ b/src/backend/optimizer/path/equivclass.c
@@ -777,8 +777,17 @@ find_em_expr_for_rel(EquivalenceClass *ec, RelOptInfo *rel)
 	foreach(lc_em, ec->ec_members)
 	{
 		EquivalenceMember *em = lfirst(lc_em);
+		PathTarget *target = rel->reltarget;
+		ListCell *lc_expr;
+		bool foundExpr = false;
 
-		if (bms_is_subset(em->em_relids, rel->relids) &&
+		foreach(lc_expr, target->exprs)
+		{
+			if (lfirst(lc_expr) == em->em_expr)
+				foundExpr = true;
+		}
+
+		if (foundExpr && bms_is_subset(em->em_relids, rel->relids) &&
 			!bms_is_empty(em->em_relids))
 		{
 			/*
