On Mon, Sep 29, 2014 at 2:41 AM, Andres Freund <and...@2ndquadrant.com>
> On 2014-09-28 17:32:21 +1300, David Rowley wrote:
> > My understanding of foreign keys is that any pending foreign key triggers
> > will be executed just before the query completes, so we should only ever
> > encounter pending foreign key triggers during planning when we're
> > a query that's being executed from somewhere like a volatile function or
> > trigger function, if the outer query has updated or deleted some records
> > which are referenced by a foreign key.
> Note that foreign key checks also can be deferred. So the window for
> these cases is actually larger.
Thanks Andres, I know you had said this before but I had previously failed
to realise exactly what you meant. I thought you were talking about
defining a foreign key to reference a column that has a deferrable unique
index. I now realise you were talking about making the foreign key itself
as deferrable. I've made a change to the patch locally to ignore foreign
keys that are marked as deferrable.