Hi, While reviewing the foreign keys referencing partitioned tables patch, I noticed that the parentConstr argument of ATAddForeignConstraint is rendered useless by the following commit:
commit 0325d7a5957ba39a0dce90835ab54a08ab8bf762 Author: Alvaro Herrera <alvhe...@alvh.no-ip.org> Date: Fri Jan 18 14:49:40 2019 -0300 Fix creation of duplicate foreign keys on partitions Above commit added another function specialized for recursively adding a given foreign key constraint to partitions, so ATAddForeignConstraint is no longer called recursively. Maybe remove that argument in HEAD ? Attached a patch. Thanks, Amit
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 715c6a221c..f225c494bd 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -404,7 +404,7 @@ static ObjectAddress ATAddCheckConstraint(List **wqueue, bool recurse, bool recursing, bool is_readd, LOCKMODE lockmode); static ObjectAddress ATAddForeignKeyConstraint(List **wqueue, AlteredTableInfo *tab, - Relation rel, Constraint *fkconstraint, Oid parentConstr, + Relation rel, Constraint *fkconstraint, bool recurse, bool recursing, LOCKMODE lockmode); static void CloneForeignKeyConstraints(Oid parentId, Oid relationId, @@ -7077,7 +7077,7 @@ ATExecAddConstraint(List **wqueue, AlteredTableInfo *tab, Relation rel, NIL); address = ATAddForeignKeyConstraint(wqueue, tab, rel, - newConstraint, InvalidOid, + newConstraint, recurse, false, lockmode); break; @@ -7236,7 +7236,7 @@ ATAddCheckConstraint(List **wqueue, AlteredTableInfo *tab, Relation rel, */ static ObjectAddress ATAddForeignKeyConstraint(List **wqueue, AlteredTableInfo *tab, Relation rel, - Constraint *fkconstraint, Oid parentConstr, + Constraint *fkconstraint, bool recurse, bool recursing, LOCKMODE lockmode) { Relation pkrel; @@ -7607,7 +7607,7 @@ ATAddForeignKeyConstraint(List **wqueue, AlteredTableInfo *tab, Relation rel, fkconstraint->deferrable, fkconstraint->initdeferred, fkconstraint->initially_valid, - parentConstr, + InvalidOid, RelationGetRelid(rel), fkattnum, numfks,