Skip to content

Commit e1ef6f1

Browse files
committed
equivalence members creation bugfix
1 parent bd91a69 commit e1ef6f1

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

contrib/pg_pathman/pg_pathman.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -635,11 +635,15 @@ append_child_relation(PlannerInfo *root, RelOptInfo *rel, Index rti,
635635
EquivalenceClass *cur_ec = (EquivalenceClass *) lfirst(lc);
636636

637637
/* Copy equivalence member from parent and make some modifications */
638-
if (list_length(cur_ec->ec_members) > 0)
638+
foreach(lc2, cur_ec->ec_members)
639639
{
640-
EquivalenceMember *cur_em = (EquivalenceMember *) linitial(cur_ec->ec_members);
641-
EquivalenceMember *em = makeNode(EquivalenceMember);
640+
EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc2);
641+
EquivalenceMember *em;
642642

643+
if (!bms_is_member(rti, cur_em->em_relids))
644+
continue;
645+
646+
em = makeNode(EquivalenceMember);
643647
em->em_expr = copyObject(cur_em->em_expr);
644648
change_varnos((Node *) em->em_expr, rti, childRTindex);
645649
em->em_relids = bms_add_member(NULL, childRTindex);

0 commit comments

Comments
 (0)