diff --git a/src/backend/catalog/pg_constraint.c b/src/backend/catalog/pg_constraint.c index 6781b00c6e..2063abb8ae 100644 --- a/src/backend/catalog/pg_constraint.c +++ b/src/backend/catalog/pg_constraint.c @@ -574,6 +574,7 @@ CloneForeignKeyConstraints(Oid parentId, Oid relationId, List **cloned) fkconstraint = makeNode(Constraint); /* for now this is all we need */ + fkconstraint->conname = pstrdup(NameStr(constrForm->conname)); fkconstraint->fk_upd_action = constrForm->confupdtype; fkconstraint->fk_del_action = constrForm->confdeltype; fkconstraint->deferrable = constrForm->condeferrable; diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index b0cbf2e137..61fefe1d7c 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -14219,21 +14219,21 @@ ATExecAttachPartition(List **wqueue, Relation rel, PartitionCmd *cmd) RelationGetRelid(attachrel), &cloned); foreach(l, cloned) { - ClonedConstraint *cloned = lfirst(l); + ClonedConstraint *clonedcon = lfirst(l); NewConstraint *newcon; Relation clonedrel; AlteredTableInfo *parttab; - clonedrel = relation_open(cloned->relid, NoLock); + clonedrel = relation_open(clonedcon->relid, NoLock); parttab = ATGetQueueEntry(wqueue, clonedrel); newcon = (NewConstraint *) palloc0(sizeof(NewConstraint)); - newcon->name = cloned->constraint->conname; + newcon->name = clonedcon->constraint->conname; newcon->contype = CONSTR_FOREIGN; - newcon->refrelid = cloned->refrelid; - newcon->refindid = cloned->conindid; - newcon->conid = cloned->conid; - newcon->qual = (Node *) cloned->constraint; + newcon->refrelid = clonedcon->refrelid; + newcon->refindid = clonedcon->conindid; + newcon->conid = clonedcon->conid; + newcon->qual = (Node *) clonedcon->constraint; parttab->constraints = lappend(parttab->constraints, newcon);